home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / eaitstd3.lsp < prev    next >
Lisp/Scheme  |  1998-03-15  |  83KB  |  2,557 lines

  1. ;---------------------------------------------------------------------------
  2.  
  3. ; Die Koordinatensystem einrichten
  4. ; neu seit Version 2.0
  5. ; dadurch ist man flexibler. Man kann z.B. das BKS EAITucstop nach seinen Bedⁿrfnisen
  6. ; einrichten und alle weiteren BKS werden vom Programm darauf ausgerichtet.
  7.  
  8.     (if (NOT (tblsearch "UCS" "EAITucstop"))
  9.      (progn
  10.         (command EAITbks EAITbwe)
  11.       (command EAITbks EAITb3p "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774")
  12. ;      (command EAITbks EAITbx 35)
  13. ;      (command EAITbks EAITby 45)
  14. ;      (command EAITbks EAITbx -90)
  15. ;      (command EAITbks EAITbz 5)
  16.       (command EAITbks EAITbsi "EAITucstop")
  17.      )
  18.     )
  19.     (if (NOT (tblsearch "UCS" "EAITucsbot"))
  20.      (progn
  21.         (command EAITbks EAITbho "EAITucstop")
  22.         (command EAITbks EAITby 180)
  23.         (command EAITbks EAITbsi "EAITucsbot")
  24.       )
  25.     )
  26.     (if (NOT (tblsearch "UCS" "EAITucsrr"))
  27.      (progn
  28.         (command EAITbks EAITbho "EAITucstop")
  29.         (command EAITbks EAITbx 90)
  30.         (command EAITbks EAITby 90)
  31.         (command EAITbks EAITbsi "EAITucsrr")
  32.       )
  33.     )
  34.     (if (NOT (tblsearch "UCS" "EAITucsrl"))
  35.      (progn
  36.         (command EAITbks EAITbho "EAITucstop")
  37.         (command EAITbks EAITbx 90)
  38.         (command EAITbks EAITby 180)
  39.         (command EAITbks EAITbsi "EAITucsrl")
  40.       )
  41.     )
  42.     (if (NOT (tblsearch "UCS" "EAITucsfl"))
  43.      (progn
  44.         (command EAITbks EAITbho "EAITucstop")
  45.         (command EAITbks EAITbx 90)
  46.         (command EAITbks EAITby -90)
  47.         (command EAITbks EAITbsi "EAITucsfl")
  48.       )
  49.     )
  50.     (if (NOT (tblsearch "UCS" "EAITucsfr"))
  51.      (progn
  52.         (command EAITbks EAITbho "EAITucstop")
  53.         (command EAITbks EAITbx 90)
  54.         (command EAITbks EAITbsi "EAITucsfr")
  55.       )
  56.     )
  57. (command EAITbks EAITbwe)
  58.  
  59.  
  60.  
  61. ;***************************************************************************
  62. ;**** Definieren der Funktion zum Fuellen der BKS-Dialogbox             ****
  63. ;***************************************************************************
  64.  
  65.  
  66. (defun fill_bks ( w_list / name xx yy)
  67. ;Zu dieser Funktion muß eine Liste namens w_list vorhanden sein,
  68. ;welche die key-Werte der image-buttons der BKSfenster
  69. ;enthaelt 
  70.  
  71.  (foreach n w_list
  72.   (start_image n)
  73.   (setq xx (dimx_tile n)
  74.         yy (dimy_tile n)
  75.   )
  76.   (setq name (strcat "P_" n))
  77.   (if (= EAITrot "i=MB-BKS1") (setq name (strcat "ISO_" n))) 
  78.   (if (= EAITrot "i=MB-BKS2") (setq name (strcat "ISO_" n))) 
  79.   (if (= EAITrot "i=MB-BKS3") (setq name (strcat "ISO_" n))) 
  80.   (if (= EAITrot "i=MB-BKS5") (setq name (strcat "F_" n)))
  81.   (slide_image 0 0 xx yy (strcat EAITpfn "EAIT3d(" name ")")) 
  82.   (action_tile n "(setq AIT_ro $key)")
  83.   (end_image)
  84.   )  
  85. )
  86.  
  87. ;---------------------------------------------------------------------------
  88.  
  89.  
  90. ;BKS in der ISOMETRIE
  91. (defun EAITibks (AIT_ro)
  92.    (princ "  -> ")(EAITmsg "mb_mld1" nil "002" nil)(princ " ")(princ AIT_ro)(princ "\n")
  93.    (EAITvari)
  94.    ;(setq oldosmode (getvar "OSMODE"))
  95.    (setvar "OSMODE" 0)
  96.    (command EAITbks EAITbwe)
  97.    (cond
  98.        ((= AIT_ro "O") (command EAITbks EAITbho "EAITucstop"))
  99.        ((= AIT_ro "U") (command EAITbks EAITbho "EAITucsbot"))
  100.        ((= AIT_ro "VL")(command EAITbks EAITbho "EAITucsfl"))
  101.        ((= AIT_ro "HR")(command EAITbks EAITbho "EAITucsrr"))
  102.        ((= AIT_ro "VR")(command EAITbks EAITbho "EAITucsfr"))
  103.        ((= AIT_ro "HL")(command EAITbks EAITbho "EAITucsrl"))
  104.    )
  105.    (EAITvarz)
  106.    ;(setvar "OSMODE" oldosmode)
  107.    (princ)
  108. )
  109.  
  110.  
  111. ;---------------------------------------------------------------------------
  112.  
  113.  
  114. ;Teil absetzen
  115. (defun EAITzst (/ AIT-p1 AIT-p2 AIT-e AIT-n AIT-elx)
  116.    (EAITvars)
  117.  
  118.    ;absetzen**********************
  119.    (setvar "OSMODE" 0)
  120.    (setvar "ORTHOMODE" 1)
  121.    (EAITmsg "mb_mld1" "\n" "003" nil)
  122.    (cond ((= EAITtyp "PKT")(princ))
  123.          ((= (substr EAITtyp 1 1) "L")
  124.                            (command EAITege (strcat EAITpfn "3d/" EAITgraf) pause EAITxyz "1" "1" EAITl1 pause
  125.                                  "0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
  126.                            (setq AIT-e (ssget EAITgetl))
  127.          )
  128.          ((= (substr EAITtyp 1 1) "B")
  129.                            (command EAITege (strcat EAITpfn "3d/" EAITgraf) pause EAITxyz EAITl1 EAITb1 EAITt1 pause
  130.                                  "0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl2 2 1) (rtos EAITb2 2 1) EAITme EAITve)
  131.                            (setq AIT-e (ssget EAITgetl))
  132.          )
  133.          ((= (substr EAITtyp 1 1) "K")
  134.                            (command EAITege (strcat EAITpfn "3d/" EAITgraf) pause "" "" pause
  135.                                  "0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
  136.                            (setq AIT-e (EAITidx AIT-e))
  137.          )
  138.    )
  139.  
  140.    ;verschieben (nicht Bezugspunkt)
  141.    (if (/= EAITtyp "PKT")
  142.        (while AIT-e
  143.          (if (= EAITtyp "K2")(redraw (ssname AIT-e 0) 3))
  144.          (setvar "ORTHOMODE" 0)
  145.          (setvar "OSMODE" 9)
  146.          (EAITmsg "mb_mld1" "\n" "004" "\n")
  147.          (setq AIT-p1 (getpoint))
  148.          (if AIT-p1 (progn
  149.                       (setq AIT-p2 (getpoint AIT-p1))
  150.                       (if AIT-p2 (progn
  151.                                   (setvar "ORTHOMODE" 0)
  152.                                   (setvar "OSMODE" 0)
  153.                                   (cond ((= EAITtyp "K2")(setq AIT-elx (ssname AIT-e 0))
  154.                                                          (command EAITsch AIT-elx "" AIT-p1 AIT-p2 )
  155.                                                          (setq AIT-e (ssdel AIT-elx AIT-e))
  156.                                                          (if (= (sslength AIT-e) 0)(setq AIT-e nil))
  157.                                         )
  158.                                         (T               (command EAITsch AIT-e "" AIT-p1 AIT-p2 )
  159.                                                          (setq AIT-e nil)
  160.                                         )
  161.                                   )
  162.                                  )
  163.                       )
  164.                     )
  165.          )
  166.        )
  167.        (progn
  168.          (setvar "ORTHOMODE" 0)
  169.          (setvar "OSMODE" 9)
  170.          (command EAITege (strcat EAITpfn "3d/EAITpkt") pause EAITxyz "1" "1" EAITl1 "" )
  171.        )
  172.    )
  173.    (if (= EAITtyp "B2")(command EAITdda (entlast)))
  174.  
  175.    ;vars zurücksetzen
  176.    (if (= abks "0")
  177.    (progn
  178.    (command EAITbks EAITbvo)
  179.    (command EAITbks EAITbvo)
  180.     )
  181.    )
  182.    (EAITvarz)
  183.  
  184.    ;Rotation
  185.    ;(if (/= EAITrot "")(EAITbksw)(menucmd EAITmen3))
  186.    (princ)
  187. )
  188.  
  189.  
  190.  
  191. ;---------------------------------------------------------------------------
  192.  
  193. ;weitere Blöcke mit Lfd-Index einfügen
  194. (defun EAITidx (AIT_en / AIT-n AIT-graf AIT-wi2 AIT-en AIT-enn AIT-za
  195.                          AIT-wi AIT-pt AIT-ap1 AIT-ap2 AIT-wp1 AIT-wp2
  196.                          AIT-zp1 AIT-zp2 AIT-ref)
  197.  ;Einfügewinkel ermitteln
  198.  (setq AIT-en  (entget(entlast))
  199.        AIT-enn (EAITdxf  -1 AIT-en)
  200.        AIT-ref (EAITdxf   5 AIT-en)
  201.        AIT-za  (EAITdxf 210 AIT-en)
  202.        AIT-wi  (EAITdxf  50 AIT-en)
  203.        AIT-pt  (EAITdxf  10 AIT-en)
  204.        AIT-ap1 (trans AIT-pt AIT-enn 1)
  205.        AIT-wp1 (trans AIT-pt AIT-enn 2)
  206.  )
  207.  (command EAITbks EAITbwe EAITbks EAITbza "0,0,0" AIT-za)
  208.  (setq AIT-zp1 (trans AIT-wp1 0 1)
  209.        AIT-zp2 (polar AIT-zp1 AIT-wi 1)
  210.        AIT-wp2 (trans AIT-zp2 1 0)
  211.  )
  212.  (command EAITbks EAITbvo EAITbks EAITbvo)
  213.  (setq AIT-ap2 (trans AIT-wp2 0 1)
  214.        AIT-wi2 (EAITbig (angle AIT-ap1 AIT-ap2))
  215.  )
  216.  
  217.  ;weitere Blöcke einfügen, wenn vorhanden (max 9 möglich)
  218.  (setq AIT_en (ssget EAITgetl)
  219.        AIT-n 1
  220.        AIT-graf (strcat EAITpfn "3d/"  (substr EAITgraf 1 7)(itoa AIT-n) ".dwg")
  221.  )
  222.  (while (findfile AIT-graf)
  223.    (if (= EAITtyp "K3")
  224.        (command EAITege AIT-graf AIT-ap1 "" "" AIT-wi2 "0" EAITnr EAITnrx EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITme EAITve)
  225.        (command EAITege AIT-graf AIT-ap1 "" "" AIT-wi2 (itoa AIT-n))
  226.    )
  227.    (setq AIT-en (ssadd (entlast) AIT_en)
  228.          AIT-n (1+ AIT-n)
  229.          AIT-graf (strcat EAITpfn "3d/" (substr EAITgraf 1 7)(itoa AIT-n) ".dwg")
  230.    )
  231.  )
  232.  (setq AIT_en AIT_en)
  233. )
  234.  
  235.  
  236.  
  237.  
  238.  
  239. ;---------------------------------------------------------------------------
  240.  
  241.  
  242. ;Standard-Profil mit Laengeneingabe
  243. (defun EAITtl1 ( / dat_zeig2 w_list dialogwert laenge l1wert)
  244.    (EAITvars)
  245.  
  246.    ;Dialogboxfunktion:
  247.  
  248.  (setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
  249.        dialogwert 5
  250.        abks "0"
  251.        AIT_ro "O"
  252.   )
  253.  (if (not EAITlpr)(setq EAITlpr 100.0)) 
  254.  (setq laenge (rtos EAITlpr 2 2))
  255.  
  256. (if (= EAITtyp "L1")
  257.  (progn
  258.  (while (< 1 dialogwert)
  259.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  260.  (if (not (new_dialog "mb_bks4_l1" dat_zeig2)) (exit))
  261.  (set_tile "ABKS" abks)
  262.  (set_tile "laenge" laenge) 
  263.  (set_tile "EAITbez1" EAITbez1)
  264.  (mode_tile AIT_ro 0)
  265.  (fill_bks w_list)
  266.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  267.        stichwort ":item1"
  268.  )
  269.  (action_tile "help" "(hilfe stichwort thema)")
  270.  (action_tile "ABKS" "(setq abks $value)")
  271.  (action_tile "laenge" "(setq laenge $value)")  ; Laenge über Tastatur eingegeben
  272.  (action_tile "laenge_z" "(done_dialog 6)")     ; Laenge aus Zeichnung geholt
  273.  (action_tile "einfuegen" "(done_dialog 4)")    ; Einfügeknopf betaetigt
  274.  (action_tile "cancel" "(done_dialog 0)")
  275.  (action_tile "popup" "(done_dialog 1)")
  276.  (setq dialogwert (start_dialog))   
  277.  (start_dialog)
  278.  
  279.  (if (= dialogwert 1) (menucmd EAITmen3))
  280.  
  281.  (if (= dialogwert 6)
  282.   (progn
  283.    (setvar "OSMODE" 9)
  284.    (if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
  285.    (initget (+ 2 4))
  286.    (setq EAITl1 (getdist " "))
  287.    (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  288.    (while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
  289.       (EAITabm_warn)
  290.       (initget (+ 2 4))
  291.       (setq EAITl1 (getdist " "))
  292.       (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  293.    )
  294.    (setvar "OSMODE" 0)
  295.    (setq laenge (rtos EAITl1 2 1))
  296.   )
  297.  ); dialogwert 6
  298.  
  299.  (if (= dialogwert 4)
  300.   (progn
  301.    
  302.    (if (and (/= laenge nil) (/= laenge "")
  303.                (> (ascii laenge) 47) (< (ascii laenge) 58))
  304.        (setq EAITl1 (atof laenge))
  305.        (setq EAITl1 EAITlpr
  306.              laenge (rtos EAITl1 2 1)
  307.        )
  308.    ) 
  309.    
  310.      (if (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
  311.        (progn
  312.          (EAITabm_warn)
  313.        );progn
  314.        (progn
  315.          ;1 Nachkommastelle
  316.          (setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
  317.  
  318.          ;letzte Laenge (L1) merken
  319.          (setq EAITlpr EAITl1)
  320.          (EAITvarz)
  321.  
  322.          ;Rotation
  323.          (if (= abks "0") (EAITibks AIT_ro))
  324.          ;Rotation nicht bei Anwahl aktuelles BKS
  325.          ;Einfuegen
  326.          (EAITzst)
  327.          (princ)
  328.        );progn
  329.      );if
  330.      );progn
  331.     ); dialogwert 4
  332.    );while
  333.    (unload_dialog dat_zeig2) 
  334.   );progn
  335. );if "L1"
  336.  
  337.  
  338. (if (= EAITtyp "PKT")
  339.  (progn
  340.  (while (< 1 dialogwert)
  341.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  342.  (if (not (new_dialog "bezpkt" dat_zeig2)) (exit))
  343.  (set_tile "ABKS" abks)
  344.  (set_tile "laenge" laenge) 
  345.  (mode_tile AIT_ro 0)
  346.  (fill_bks w_list)
  347.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  348.        stichwort ":item1"
  349.  )
  350.  (action_tile "help" "(hilfe stichwort thema)")
  351.  (action_tile "ABKS" "(setq abks $value)")
  352.  (action_tile "laenge" "(setq laenge $value)")  ; Laenge über Tastatur eingegeben
  353.  (action_tile "laenge_z" "(done_dialog 6)")     ; Laenge aus Zeichnung geholt
  354.  (action_tile "einfuegen" "(done_dialog 4)")    ; Einfügeknopf betaetigt
  355.  (action_tile "cancel" "(done_dialog 0)")
  356.  (setq dialogwert (start_dialog))   
  357.  (start_dialog)
  358.  
  359.  
  360.  (if (= dialogwert 6)
  361.   (progn
  362.    (setvar "OSMODE" 9)
  363.    (if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
  364.    (initget (+ 2 4))
  365.    (setq EAITl1 (getdist " "))
  366.    (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  367.    (while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
  368.       (EAITmsg "mb_mld1" "\n\n" "006" "  ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
  369.       (EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
  370.       (initget (+ 2 4))
  371.       (setq EAITl1 (getdist " "))
  372.       (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  373.    )
  374.    (setvar "OSMODE" 0)
  375.    (setq laenge (rtos EAITl1 2 2))
  376.   )
  377.  )
  378.  
  379.  (if (= dialogwert 4)
  380.   (progn
  381.    
  382.    (if (and (/= laenge nil) (/= laenge "")
  383.        (> (ascii laenge) 47) (< (ascii laenge) 58))
  384.        (setq EAITl1 (atof laenge))
  385.        (setq EAITl1 EAITlpr
  386.              laenge (rtos EAITl1 2 2)
  387.        )
  388.    ) 
  389.    
  390.    ;1 Nachkommastelle
  391.    (setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
  392.    (princ "\n  -> ")(princ EAITl1)
  393.  
  394.  
  395.    ;letzte Laenge (L1) merken
  396.    (setq EAITlpr EAITl1)
  397.    (EAITvarz)
  398.  
  399.    ;Rotation
  400.    (if (= abks "0") (EAITibks AIT_ro))
  401.    ;Rotation nicht bei Anwahl aktuelles BKS
  402.    ;Einfuegen
  403.    (EAITzst)
  404.    (princ)
  405.      )
  406.     )
  407.    )
  408.  (unload_dialog dat_zeig2) 
  409.   )
  410. );if "PKT"
  411.    
  412.  
  413.  
  414.    
  415. ;Klemmprofil mit Leiste
  416.    (if (= EAITtyp "L2")
  417.        (progn
  418.  
  419.  (if (not EAITlp2)(setq EAITlp2 0.0))
  420.  (if (> EAITl1 EAITlp2)(setq EAITb1 (float(fix (- EAITl1 EAITlp2))))(setq EAITb1 EAITl1))
  421.  
  422.  (setq l1wert "l1")
  423.  (while (< 1 dialogwert)
  424.  (setq breite (rtos EAITb1 2 2))
  425.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  426.  (if (not (new_dialog "mb_bks4_l2" dat_zeig2)) (exit))
  427.  (set_tile "ABKS" abks)
  428.  (set_tile "laenge" laenge) 
  429.  (set_tile "breite" breite)
  430.  (set_tile "EAITbez1" EAITbez1)
  431.  (if (/= l1wert "breite") (set_tile l1wert "1"))
  432.  (mode_tile AIT_ro 0)
  433.  (fill_bks w_list)
  434.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  435.        stichwort ":item1"
  436.  )
  437.  (action_tile "help" "(hilfe stichwort thema)")
  438.  (action_tile "ABKS" "(setq abks $value)")
  439.  (action_tile "l1" "(setq l1wert $key)")
  440.  (action_tile "l1_5" "(setq l1wert $key)")
  441.  (action_tile "l1_50" "(setq l1wert $key)")
  442.  (action_tile "laenge" "(setq laenge $value)")
  443.  (action_tile "breite" "(setq breite $value)(setq l1wert $key)")
  444.  (action_tile "laenge_z" "(done_dialog 6)")
  445.  (action_tile "einfuegen" "(done_dialog 4)")
  446.  (action_tile "cancel" "(done_dialog 0)")
  447.  (action_tile "popup" "(done_dialog 1)")
  448.  (setq dialogwert (start_dialog))   
  449.  (start_dialog)
  450.  
  451.  (if (= dialogwert 1) (menucmd EAITmen3))
  452.  
  453.  (if (= dialogwert 6)
  454.   (progn
  455.    (setvar "OSMODE" 9)
  456.    (if (= EAITtyp "PKT")(EAITmsg "mb_mld1" "\n" "036" " <")(EAITmsg "mb_mld1" "\n" "005" " <"))(princ EAITlpr)(princ "> ")
  457.    (initget (+ 2 4))
  458.    (setq EAITl1 (getdist " "))
  459.    (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  460.    (while (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
  461.       (EAITabm_warn)
  462.       ;(EAITmsg "mb_mld1" "\n\n" "006" "  ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
  463.       ;(EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
  464.       (initget (+ 2 4))
  465.       (setq EAITl1 (getdist " "))
  466.       (if (= EAITl1 nil)(setq EAITl1 EAITlpr))
  467.    )
  468.    (setvar "OSMODE" 0)
  469.    (setq laenge (rtos EAITl1 2 2))
  470.   )
  471.  )
  472.  
  473.  (if (= dialogwert 4)
  474.   (progn
  475.    
  476.    (if (and (/= laenge nil) (/= laenge "")
  477.        (> (ascii laenge) 47) (< (ascii laenge) 58))
  478.        (setq EAITl1 (atof laenge))
  479.        (setq EAITl1 EAITlpr
  480.              laenge (rtos EAITl1 2 2)
  481.        )
  482.    ) 
  483.      (if (and (or (> EAITl1 EAITlmax)(<= EAITl1 EAITlmin)) (/= EAITtyp "PKT"))
  484.        (progn
  485.          (EAITabm_warn)
  486.          ;(EAITmsg "mb_mld1" "\n\n" "006" "  ")(princ EAITlmin)(princ " / ")(princ EAITlmax)(EAITmsg "mb_mld1" " " "007" nil)
  487.          ;(EAITmsg "mb_mld1" "\n" "005" " <")(princ EAITlpr)(princ "> ")
  488.        );progn
  489.        (progn       
  490.          ;1 Nachkommastelle
  491.          (setq EAITl1 (/ (float (fix (+ (* EAITl1 10.0) 0.5))) 10))
  492.          (princ "\n  -> ")(princ EAITl1)
  493.  
  494.  
  495.          ;letzte Laenge (L1) merken
  496.          (setq EAITlpr EAITl1)
  497.  
  498.          ;Klemmlaenge:
  499.  
  500.          (if (= l1wert "l1")
  501.              (setq EAITb1 EAITl1)
  502.          )
  503.          (if (= l1wert "l1_5")
  504.            (setq EAITb1 (- EAITl1 5.0))
  505.          )
  506.          (if (= l1wert "l1_50")
  507.            (setq EAITb1 (- EAITl1 50.0))
  508.          )
  509.          (if (= l1wert "breite")
  510.            (if (and (/= breite nil) (/= breite "")
  511.                  (> (ascii breite) 47) (< (ascii breite) 58))
  512.              (setq EAITb1 (atof breite))
  513.              (setq EAITb1 EAITlp2
  514.                    breite (rtos EAITb1 2 2)
  515.              )
  516.            ) 
  517.          ) 
  518.          (cond ((<= EAITb1 0.0)
  519.                    (setq EAITb1 0.0) 
  520.                )
  521.                ((> EAITb1 EAITlmax) 
  522.                    (EAITmsg "mb_mld10" "\n" "021" nil) (EAITmsg "mb_mld13" "  " "005" " ")
  523.                    (princ EAITlmax)(EAITmsg "mb_mld13" " " "006" nil) (EAITmsg "mb_mld10" nil "022" "\n")
  524.                    (setq EAITb1 0.0)
  525.                )
  526.                (T 
  527.                    (setq EAITlp2 (float (fix (- EAITl1 EAITb1)))) 
  528.                )
  529.          );cond
  530.  
  531.          ;Klemmleiste ohne Nachkommastellen
  532.          (setq EAITb1  (float (fix EAITb1)) )
  533.          (princ "\n  -> ")(princ EAITl1)(princ " / ")(princ EAITb1)
  534.    
  535.          (EAITvarz)
  536.  
  537.          ;Rotation
  538.          (if (= abks "0") (EAITibks AIT_ro))
  539.          ;Rotation nicht bei Anwahl aktuelles BKS
  540.          ;Einfuegen
  541.          (EAITzst)
  542.          (princ)
  543.        );progn
  544.       );if
  545.      );progn
  546.     );if dialogwert 4
  547.    );while
  548.  (unload_dialog dat_zeig2) 
  549.   );progn
  550.  );if
  551.  
  552. );defun EAITtl1
  553.  
  554.  
  555. ;---------------------------------------------------------------------------
  556.  
  557. ;3D-Element aufrufen
  558. (defun EAITstrt (AIT_nrx AIT_pop / AIT-gr)
  559.   (EAITvari)
  560.   ;3D-Bezugspunkt oder 3D-Element?
  561.   (if (not AIT_nrx)
  562.      (progn
  563.        (EAITmsg "mb_mld2" "\n" "016" "\n")
  564.        (setq EAITtyp "PKT"
  565.              EAITrot "i=MB-BKS4"
  566.              EAITnrx nil
  567.              EAITnr 0
  568.        )
  569.        (if (not EAITmen3)(setq EAITmen3 "p1=*"))
  570.      )
  571.      (progn
  572.        (if (> (strlen AIT_nrx) 7)(setq AIT-gr (substr AIT_nrx 8 1) AIT_nrx (substr AIT_nrx 1 7))(setq AIT-gr nil) )
  573.        (EAITDBL AIT_nrx)
  574.        (if (AND (findfile (strcat EAITpfn "3d/" AIT_nrx ".DWG"))(NOT (tblsearch "block" AIT_nrx)))(EAIT3Dis AIT_nrx))
  575.      )
  576.   )
  577.   ;verzweigen
  578.   (if EAITn r
  579.          (progn
  580.            (if AIT-gr (setq EAITgraf (strcat EAITnrx AIT-gr)));bei gleicher Bestellnummer und untersch. Grafik
  581.            (if AIT_pop (setq EAITmen3 AIT_pop))               ;bei Aufruf aus versch. Pop-Ups, kann px=* aus Menü vorgegeben werden
  582.            (cond ((= EAITtyp "L1") (EAITTL1))
  583.                  ((= EAITtyp "L2") (EAITTL1))
  584.                  ((= EAITtyp "PKT")(EAITTL1))
  585.                  ((= EAITtyp "B1") (EAITTB1))
  586.                  ((= EAITtyp "B2") (EAITTB1))
  587.                  ((= EAITtyp "K1") (EAITbksw))
  588.                  ((= EAITtyp "K2") (EAITbksw))
  589.                  ((= EAITtyp "K3") (EAITbksw))
  590.                  ((= EAITtyp "V1") (EAITv1))
  591.                  (T                (EAITzst))
  592.            )
  593.          )
  594.   )
  595.   (princ)
  596. )
  597.  
  598.  
  599. ;---------------------------------------------------------------------------
  600.  
  601. ;***Hauptelement für Subelemente suchen und verifizieren***
  602.  
  603. (defun EAITv1 ( / AIT-eb AIT-x AIT-nr)
  604.   (EAITvari)
  605.   (EAITvars)
  606.   (setq AIT-eb (car (entsel)))
  607.   (while (and (/= AIT-eb nil)(= (EAITdxf 0 (entget AIT-eb)) "INSERT"))
  608.    ;3D-Struktur vorhanden?
  609.    (setq AIT-x "X")
  610.    ;Index-Element? -> Hauptelement selektieren
  611.    (if (entnext AIT-eb)
  612.           (if (and (= (EAITdxf 0 (entget (entnext AIT-eb))) "ATTRIB")(= (EAITdxf 2 (entget (entnext AIT-eb))) "EAIT3D_REF"))
  613.               (progn
  614.                 (setq AIT-eb (EAIThb AIT-eb))
  615.                 (if (entnext AIT-eb)
  616.                     (if (and (= (EAITdxf 0 (entget (entnext AIT-eb))) "ATTRIB")(= (EAITdxf 2 (entget (entnext AIT-eb))) "EAIT3D_REF")) (setq AIT-x nil))
  617.                     (setq AIT-x nil)
  618.                 )
  619.               )
  620.           )
  621.    )
  622.    ;Haupt-Element?
  623.    (if (and AIT-x (entnext AIT-eb))
  624.        (if (entnext(entnext AIT-eb))
  625.            (if (entnext(entnext(entnext AIT-eb)))(setq AIT-x "X")(princ))
  626.            (setq AIT-x nil)
  627.        )
  628.        (setq AIT-x nil)
  629.    )
  630.    ;3D-Element
  631.    (if AIT-x
  632.      (progn
  633.        (setq AIT-nr (EAITdxf 1 (entget (entnext(entnext(entnext AIT-eb))))) )
  634. ;       (if (and (/= AIT-nr nil) (findfile (strcat EAITpfn "dat/" AIT-nr ".dat")))
  635.        (if (and (/= AIT-nr nil) (findfile (strcat EAITpfd AIT-nr ".dat")))
  636.          (progn
  637.            (EAITzuw AIT-eb AIT-nr)
  638.          )
  639.          (progn
  640.            (EAITmsg "mb_mld1" "\n\n" "023" nil);Ungültig
  641.            (EAITmsg "mb_mld1" "\n" "022" nil);KEIN item-Element
  642.          )
  643.        )
  644.      )
  645.      (progn
  646.        (EAITmsg "mb_mld1" "\n\n" "023" nil);Ungültig
  647.        (EAITmsg "mb_mld1" "\n" "022" nil);KEIN item-Element
  648.      )
  649.  
  650.    )
  651.    (setq AIT-eb (car (entsel)))
  652.   )
  653.   (EAITvarz)
  654.   (menucmd EAITmen3)
  655.   (princ)
  656.   (princ)
  657. )
  658.  
  659. ;---------------------------------------------------------------------------
  660.  
  661. ;***Subelemente in Block schreiben***
  662.  
  663. (defun EAITzuw (AIT_ebx AIT_nr / AIT-vze AIT-len AIT-vn AIT-vx AIT-def AIT-n
  664.                                  AIT-anz AIT-anzx AIT-neu AIT-zneu AIT-e
  665.                                  AIT-posx AIT-posy)
  666.    (redraw AIT_ebx 3)
  667.    (setq AIT-vze (EAITdxf 1 (entget (entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext AIT_ebx)))))))))))))))
  668.          AIT-len (strlen AIT-vze)
  669.          AIT-vn (fix (/ (+ AIT-len 1.0) 12))
  670.          AIT-vx 0
  671.          AIT-def 0
  672.          AIT-n 0
  673.    )
  674.    
  675.    ;vorhandene Infos auslesen je 12 Zeichen
  676.    
  677.    (while (< AIT-n AIT-vn)
  678.      (if (= (substr AIT-vze (+ (* AIT-n 12) 1) 7) EAITnrx)
  679.          (setq AIT-def (atoi (substr AIT-vze (+ (* AIT-n 12) 9) 3))
  680.                AIT-vx (+ AIT-n 1)
  681.                AIT-n AIT-vn
  682.          )
  683.      )
  684.      (setq AIT-n (+ AIT-n 1))
  685.    )
  686.  
  687.    ;max 5 Subelemente je 3D-Block
  688.  
  689.    (if (and (>= AIT-vn 5)(= AIT-vx 0))
  690.      (EAITmsg "mb_mld5" "\n\n" "002" "\n")
  691.      (progn
  692.        ;neue Anzahl
  693.        (EAITmsg "mb_mld5" "\n" "001" nil)(princ " <")(princ AIT-def)(princ "> ")
  694.        (setq AIT-anz (getint))
  695.        (if (not AIT-anz)(setq AIT-anz AIT-def)(if (> AIT-anz 999)(setq AIT-anz AIT-def)))
  696.        (cond ((< AIT-anz  10)(setq AIT-anzx (strcat "00" (itoa AIT-anz))) )
  697.              ((< AIT-anz 100)(setq AIT-anzx (strcat  "0" (itoa AIT-anz))) )
  698.              (T              (setq AIT-anzx (itoa AIT-anz)) )
  699.        )
  700.        (setq AIT-neu (strcat EAITnrx "=" AIT-anzx " "))
  701.        (if (= AIT-anz 0)(setq AIT-neu ""))
  702.  
  703.        (cond ((= AIT-vn 0)                  (setq AIT-zneu AIT-neu))
  704.              ((and (= AIT-vn 1)(= AIT-vx 1))(setq AIT-zneu AIT-neu))
  705.              ((= AIT-vx 0)                  (setq AIT-zneu (strcat AIT-vze AIT-neu)))
  706.              ((= AIT-vx 1)                  (setq AIT-zneu (strcat AIT-neu (substr AIT-vze 13 AIT-len))))
  707.              ((= AIT-vx AIT-vn)             (setq AIT-zneu (strcat (substr AIT-vze 1 (* (- AIT-vx 1) 12)) AIT-neu)))
  708.              (T                             (setq AIT-zneu (strcat (substr AIT-vze 1 (* (- AIT-vx 1) 12)) AIT-neu (substr AIT-vze (+ (* AIT-vx 12) 1) AIT-len))))
  709.        )
  710.        ;Subelemente eintragen in Attribut
  711.        (setq AIT-e (entget (entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext(entnext AIT_ebx)))))))))))))))
  712.        (setq AIT-e (subst (cons 1 AIT-zneu)(assoc 1 AIT-e) AIT-e))
  713.        (entmod AIT-e)
  714.  
  715.        ;Pos-Nr korrigieren?
  716.        (if (and (> AIT-vx 0)(= AIT-anz 0))
  717.            (progn
  718.              (setq AIT-e   (entget(entnext AIT_ebx))
  719.                    AIT-posy (cdr (assoc 1 (entget(entnext AIT_ebx))))
  720.                    AIT-posx (EAITposx AIT-Posy AIT-anz (+ AIT-vx 1))
  721.              )
  722.              (setq AIT-e (subst (cons 1 AIT-posx)(assoc 1 AIT-e) AIT-e))
  723.              (entmod AIT-e)
  724.            )
  725.        )
  726.  
  727.      )
  728.    )
  729.    (redraw AIT_ebx 4)
  730.    (princ)
  731. )
  732.  
  733. (princ)
  734.  
  735.  
  736.  
  737. ;---------------------------------------------------------------------------
  738.  
  739. ;******************* Attribut - Anfragen sprachabhaengig machen
  740. ;******************* für folgende Blöcke: alle 3D-Blöcke
  741.  
  742. (defun EAIT3Dis (BLN / INF DAT1)
  743.  
  744.        (command EAITege (strcat EAITpfn "3d/" BLN) '(0 0) nil)
  745.        (setq INF (tblsearch "block" BLN)
  746.              DAT1 (entget (EAITDXF -2 INF))
  747.        )
  748.        (while (/= DAT1 nil)       
  749.               (if (= (EAITDXF 0 DAT1) "ATTDEF")
  750.                       (cond ((= (EAITDXF 2 DAT1) "EAIT3D_POSITION")
  751.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "032"))(assoc 3 DAT1) DAT1))
  752.                             )
  753.                             ((= (EAITDXF 2 DAT1) "EAIT3D_NUMMER")
  754.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "031"))(assoc 3 DAT1) DAT1))
  755.                             )
  756.                             ((= (EAITDXF 2 DAT1) "EAIT3D_NRX")
  757.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "034"))(assoc 3 DAT1) DAT1))
  758.                             )
  759.                             ((= (EAITDXF 2 DAT1) "EAIT3D_BEZEICHNUNG1")
  760.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "023"))(assoc 3 DAT1) DAT1))
  761.                             )
  762.                             ((= (EAITDXF 2 DAT1) "EAIT3D_BEZEICHNUNG2")
  763.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "024"))(assoc 3 DAT1) DAT1))
  764.                             )
  765.                             ((= (EAITDXF 2 DAT1) "EAIT3D_LIEFERANT1")
  766.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "025"))(assoc 3 DAT1) DAT1))
  767.                             )
  768.                             ((= (EAITDXF 2 DAT1) "EAIT3D_LIEFERANT2")
  769.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "026"))(assoc 3 DAT1) DAT1))
  770.                             )
  771.                             ((= (EAITDXF 2 DAT1) "EAIT3D_WERKSTOFF1")
  772.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "027"))(assoc 3 DAT1) DAT1))
  773.                             )
  774.                             ((= (EAITDXF 2 DAT1) "EAIT3D_WERKSTOFF2")
  775.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "028"))(assoc 3 DAT1) DAT1))
  776.                             )
  777.                             ((= (EAITDXF 2 DAT1) "EAIT3D_LAENGE")
  778.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "029"))(assoc 3 DAT1) DAT1))
  779.                             )
  780.                             ((= (EAITDXF 2 DAT1) "EAIT3D_BREITE")
  781.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "030"))(assoc 3 DAT1) DAT1))
  782.                             )
  783.                             ((= (EAITDXF 2 DAT1) "EAIT3D_MENGENEINHEIT")
  784.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "035"))(assoc 3 DAT1) DAT1))
  785.                             )
  786.                             ((= (EAITDXF 2 DAT1) "EAIT3D_VERBINDUNG")
  787.                               (entmod (subst (cons 3 (EAITmg "mb_mld20" "036"))(assoc 3 DAT1) DAT1))
  788.                             )
  789.                       );cond
  790.               );if
  791.               (setq DAT1 (entnext (EAITDXF -1 DAT1)))
  792.               (if (/= DAT1 nil)(setq DAT1 (entget DAT1)))
  793.        );while
  794. (princ)
  795. );defun EAIT3Dis
  796.  
  797.  
  798. (defun EAIT3DEI ( / P1 P2)
  799.        (EAITvari)
  800.        (setvar "MAXACTVP" 8)
  801.        (command EAITbsy EAITbe
  802.                 EAITbsy EAITbke
  803.                 EAITtil "0"
  804.        )
  805.        (EAITmsg "mb_mld16" "\n" "006" ":  ")        ;"LIMITEN für mehrfache Ansichtfenster"
  806.        (EAITmsg "mb_mld16" "\n" "007" ":  ")        ;"Linke untere Ecke"
  807.        (setq P1 (getpoint))
  808.        (EAITmsg "mb_mld16" "\n" "008" ":  ")        ;"Rechte obere Ecke" 
  809.        (setq P2 (getpoint P1))
  810.        (command EAITlim P1 P2
  811.                 EAITzom EAITzof P1 P2
  812.        )
  813.        (if (not (tblsearch "layer" "EAIT3D_VIEW"))
  814.           (command EAITlay EAITlma "EAIT3D_VIEW" EAITlfa "5" "" EAITlse "EAIT3D_VIEW" "") 
  815.           (command EAITlay EAITlse "EAIT3D_VIEW" "")
  816.        )
  817.        (command EAITman "4" P1 P2
  818.                 EAITmod
  819.                 EAITbks EAITbwe
  820.        )
  821.     
  822.        (EAITvarz)
  823.        (princ)
  824.  
  825. );defun EAIT3dei
  826.  
  827. (defun EAITloebp ( / AIT-s)
  828.        (EAIThla "E")
  829.        (setq AIT-s (ssget "X" '((2 . "EAITPKT"))))
  830.        (if AIT-s (command EAITloes AIT-s ""))
  831.        (princ)
  832. ); defun EAITloebp
  833.  
  834. ;---------------------------------------------------------------------------
  835.  
  836. (defun EAITbksw ( / dat_zeig2 w_list dialogwert )
  837.    (EAITvars)
  838.  
  839.    ;Dialogboxfunktion:
  840.  
  841.  (setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
  842.        dialogwert 2
  843.        abks "0"
  844.        AIT_ro "O"
  845.  )
  846.  
  847.  
  848.  (if (or (= EAITtyp "K1") (= EAITtyp "K2") (= EAITtyp "K3"))
  849.  (progn
  850.  (while (< 1 dialogwert)
  851.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  852.  (if (not (new_dialog "mb_bks4_k1" dat_zeig2)) (exit))
  853.  (set_tile "ABKS" abks)
  854.  (set_tile "EAITbez1" EAITbez1)
  855.  (mode_tile AIT_ro 0)
  856.  (fill_bks w_list)
  857.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  858.        stichwort ":item1"
  859.  )
  860.  (action_tile "help" "(hilfe stichwort thema)")
  861.  (action_tile "ABKS" "(setq abks $value)")
  862.  (action_tile "einfuegen" "(done_dialog 2)")
  863.  (action_tile "cancel" "(done_dialog 0)")
  864.  (action_tile "popup" "(done_dialog 1)")
  865.  (setq dialogwert (start_dialog))   
  866.  (start_dialog)
  867.  
  868.  (if (= dialogwert 1) (menucmd EAITmen3))
  869.    
  870.  (if (= dialogwert 2)
  871.   (progn
  872. ;Rotation
  873.    (if (= abks "0") (EAITibks AIT_ro))
  874.    ;Rotation nicht bei Anwahl aktuelles BKS
  875.    ;Einfuegen
  876.    (EAITzst)
  877.    (princ)
  878.        )
  879.       )
  880.     )
  881.    
  882. (unload_dialog dat_zeig2) 
  883.    )
  884.   )
  885.  
  886. )
  887.  
  888.  
  889. ;---------------------------------------------------------------------------
  890.  
  891. ;Flaechenelemente
  892. (defun EAITtb1 ( / dat_zeig2 w_list dialogwert laenge breite tiefe AIT-lt AIT-bt AIT-btmp AIT-lw AIT-bw)
  893.    (EAITmsg "mb_mld1" "\n" "015" nil)
  894.    (princ " ")(princ EAITlp)(princ " ")
  895.    (EAITmsg "mb_mld1" nil "007" "\n")
  896.  
  897.    (EAITvars)
  898.  
  899.    ;Dialogboxfunktion:
  900.  
  901.  (setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
  902.        dialogwert 5
  903.        abks "0"
  904.        AIT_ro "O"
  905.  )
  906.  (if (= EAITlp nil) (setq EAITlp 0.0 EAIThr "B"))
  907.  (if (not EAITlfl)(setq EAITlfl 100.0)) 
  908.  (if (not EAITtfl)(setq EAITtfl 100.0))
  909.  (setq laenge (rtos EAITlfl 2 1))
  910.  (if (not EAITbfl)(setq EAITbfl 100.0)) 
  911.  (setq breite (rtos EAITbfl 2 1))
  912.  (setq
  913.   EAITl1 EAITlfl
  914.   EAITb1 EAITbfl
  915. )
  916.  
  917. (if (= EAITtyp "B1")
  918.  (progn
  919.  (setq EAITgraf (strcat EAITgraf EAIThr))
  920.  (while (< 1 dialogwert)
  921.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  922.  (if (not (new_dialog "mb_bks5_b1" dat_zeig2)) (exit))
  923.  (set_tile "ABKS" abks)
  924.  (set_tile "laenge" laenge) 
  925.  (set_tile "breite" breite)
  926.  (set_tile "EAITbez1" EAITbez1)
  927.  (mode_tile AIT_ro 0)
  928.  (fill_bks w_list)
  929.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  930.        stichwort ":item1"
  931.  )
  932.  (action_tile "help" "(hilfe stichwort thema)")
  933.  (action_tile "ABKS" "(setq abks $value)")
  934.  (action_tile "laenge" "(setq laenge $value)")
  935.  (action_tile "breite" "(setq breite $value)")  
  936.  (action_tile "laenge_z" "(done_dialog 6)")
  937.  (action_tile "einfuegen" "(done_dialog 4)")
  938.  (action_tile "cancel" "(done_dialog 0)")
  939.  (action_tile "popup" "(done_dialog 1)")
  940.  (setq dialogwert (start_dialog))   
  941.  (start_dialog)
  942.  
  943.  (if (= dialogwert 1) (menucmd EAITmen3))
  944.  
  945.  (if (= dialogwert 6)
  946.   (progn
  947.    (setvar "OSMODE" 9)
  948.  
  949.    ;Laengeneingaben mit Prüfung
  950.    (setq AIT-lt (1+ EAITlmax) AIT-bt (1+ EAITbmax))
  951.    (while (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  952.       (EAITmsg "mb_mld1" "\n" "016" " <")(princ EAITlfl)(princ "> ")
  953.       (initget (+ 2 4))
  954.       (setq AIT-lw (getdist))
  955.       (if (= AIT-lw nil)(setq AIT-lw EAITlfl))
  956.       (setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
  957.       (EAITmsg "mb_mld1" "\n" "017" " <")(princ EAITbfl)(princ "> ")
  958.       (initget (+ 2 4))
  959.       (setq AIT-bw (getdist))
  960.       (if (= AIT-bw nil)(setq AIT-bw EAITbfl))
  961.       (setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
  962.       (setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
  963.       (if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp  AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
  964.       (if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  965.           (progn
  966.             (EAITabm_warn)
  967.           )
  968.           (setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
  969.       )
  970.    )
  971.    
  972.    (setvar "OSMODE" 0)
  973.        (setq
  974.         laenge (rtos EAITl1 2 1)
  975.         breite (rtos EAITb1 2 1)
  976.        )
  977.       )
  978.    )
  979.    
  980.  
  981. (if (= dialogwert 4)
  982.   (progn
  983.    
  984.    (if (and (/= laenge nil) (/= laenge "")
  985.        (> (ascii laenge) 47) (< (ascii laenge) 58))
  986.        (setq AIT-lw (atof laenge))
  987.        (setq AIT-lw EAITlfl
  988.              laenge (rtos EAITl1 2 1)
  989.        )
  990.    )
  991.  
  992.    (if (and (/= breite nil) (/= breite "")
  993.        (> (ascii breite) 47) (< (ascii breite) 58))
  994.        (setq AIT-bw (atof breite))
  995.        (setq AIT-bw EAITbfl
  996.              breite (rtos EAITb1 2 1)
  997.        )
  998.    )
  999.  
  1000.       (setq AIT-lw (fix (+ (abs AIT-lw) 0.5))) 
  1001.       (setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
  1002.       (setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
  1003.       (if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp  AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
  1004.       (if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  1005.         (progn
  1006.             (EAITabm_warn)
  1007.         )
  1008.         (progn
  1009.             (setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
  1010.             (princ "\n  -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
  1011.  
  1012.             (setq EAITlfl AIT-lw EAITbfl AIT-bw)
  1013.             (EAITvarz)
  1014.       
  1015.             ;Rotation
  1016.             (if (= abks "0") (EAITibks AIT_ro))
  1017.             ;Rotation nicht bei Anwahl aktuelles BKS
  1018.             ;Einfuegen
  1019.             (EAITzst)
  1020.             (princ)
  1021.         )
  1022.       )
  1023.     )
  1024.    ); if dialogwert 4
  1025.  
  1026. )
  1027.  
  1028.  (unload_dialog dat_zeig2) 
  1029.        
  1030.     )
  1031.   )
  1032.  
  1033.  
  1034.  
  1035. (if (= EAITtyp "B2")
  1036.  (progn
  1037.  
  1038.  (if (not EAITtfl)(setq EAITtfl 100.0)) 
  1039.  (setq tiefe (rtos EAITtfl 2 1))
  1040.  (setq
  1041.   EAITt1 EAITtfl
  1042.  )
  1043.  
  1044.  (while (< 1 dialogwert)
  1045.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1046.  (if (not (new_dialog "mb_bks5_b2" dat_zeig2)) (exit))
  1047.  (set_tile "ABKS" abks)
  1048.  (set_tile "laenge" laenge) 
  1049.  (set_tile "breite" breite)
  1050.  (set_tile "tiefe" tiefe)
  1051.  (set_tile "EAITbez1" EAITbez1)
  1052.  (mode_tile AIT_ro 0)
  1053.  (fill_bks w_list)
  1054.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  1055.        stichwort ":item1"
  1056.  )
  1057.  (action_tile "help" "(hilfe stichwort thema)")
  1058.  (action_tile "ABKS" "(setq abks $value)")
  1059.  (action_tile "laenge" "(setq laenge $value)")
  1060.  (action_tile "breite" "(setq breite $value)")  
  1061.  (action_tile "tiefe" "(setq tiefe $value)") 
  1062.  (action_tile "laenge_z" "(done_dialog 6)")
  1063.  (action_tile "einfuegen" "(done_dialog 4)")
  1064.  (action_tile "cancel" "(done_dialog 0)")
  1065.  (action_tile "popup" "(done_dialog 1)")
  1066.  (setq dialogwert (start_dialog))   
  1067.  (start_dialog)
  1068.  
  1069.  (if (= dialogwert 1) (menucmd EAITmen3))
  1070.  
  1071.  (if (= dialogwert 6)
  1072.   (progn
  1073.    (setvar "OSMODE" 9)
  1074.  
  1075.    (setq AIT-lt (1+ EAITlmax) AIT-bt (1+ EAITbmax))
  1076.    (while (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  1077.       (EAITmsg "mb_mld1" "\n" "016" " <")(princ EAITlfl)(princ "> ")
  1078.       (initget (+ 2 4))
  1079.       (setq AIT-lw (getdist))
  1080.       (if (= AIT-lw nil)(setq AIT-lw EAITlfl))
  1081.       (setq AIT-lw (fix (+ (abs AIT-lw) 0.5)))
  1082.       (EAITmsg "mb_mld1" "\n" "017" " <")(princ EAITbfl)(princ "> ")
  1083.       (initget (+ 2 4))
  1084.       (setq AIT-bw (getdist))
  1085.       (if (= AIT-bw nil)(setq AIT-bw EAITbfl))
  1086.       (setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
  1087.  
  1088.          (EAITmsg "mb_mld1" "\n" "038" " <")(princ EAITtfl)(princ "> ")
  1089.          (initget (+ 2 4))
  1090.          (setq EAITt1 (getdist))
  1091.          (if (= EAITt1 nil)(setq EAITt1 EAITtfl))
  1092.          (setq EAITbez1 (strcat EAITbez1 " " (rtos EAITt1 2 0) " " (EAITmg "mb_mld1" "007") )
  1093.                EAITtfl EAITt1
  1094.          )
  1095.  
  1096.       (setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
  1097.       (if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp  AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
  1098.       (if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  1099.         (progn
  1100.             (EAITmsg "mb_mld1" "\n" "018" "  ")
  1101.             (princ EAITlmin)(princ "x")(princ EAITlmin)(princ " / ")(princ EAITlmax)(princ "x")(princ EAITbmax)
  1102.             (EAITmsg "mb_mld1" " " "007" "\n\n")
  1103.           )
  1104.           (setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
  1105.           )
  1106.        )
  1107.       (princ "\n  -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ "x")(princ EAITt1)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
  1108.      
  1109.   
  1110.    
  1111.  
  1112.    (setvar "OSMODE" 0)
  1113.        (setq
  1114.         laenge (rtos EAITl1 2 1)
  1115.         breite (rtos EAITb1 2 1)
  1116.         tiefe (rtos EAITt1 2 1)  
  1117.        )
  1118.      )
  1119.   )      
  1120.  
  1121.  
  1122. (if (= dialogwert 4)
  1123.   (progn
  1124.    
  1125.    (if (and (/= laenge nil) (/= laenge "")
  1126.        (> (ascii laenge) 47) (< (ascii laenge) 58))
  1127.        (setq AIT-lw (atof laenge))
  1128.        (setq AIT-lw EAITlfl
  1129.              laenge (rtos EAITl1 2 1)
  1130.        )
  1131.    )
  1132.  
  1133.    (if (and (/= breite nil) (/= breite "")
  1134.        (> (ascii breite) 47) (< (ascii breite) 58))
  1135.        (setq AIT-bw (atof breite))
  1136.        (setq AIT-bw EAITbfl
  1137.              breite (rtos EAITb1 2 1)
  1138.        )
  1139.    )
  1140.  
  1141.    (if (and (/= tiefe nil) (/= tiefe "")
  1142.        (> (ascii tiefe) 47) (< (ascii tiefe) 58))
  1143.        (setq EAITt1 (atof tiefe))
  1144.        (setq EAITt1 EAITtfl
  1145.              tiefe (rtos EAITt1 2 1)
  1146.        )
  1147.    )
  1148.  
  1149.       (setq AIT-lw (fix (+ (abs AIT-lw) 0.5))) 
  1150.       (setq AIT-bw (fix (+ (abs AIT-bw) 0.5)))
  1151.       (setq AIT-lt (+ AIT-lw (* 2 EAITlp)) AIT-bt (+ AIT-bw (* 2 EAITlp)) )
  1152.       (if (> AIT-bt AIT-lt) (setq AIT-btmp AIT-bt AIT-bt AIT-lt AIT-lt AIT-btmp  AIT-btmp AIT-bw AIT-bw AIT-lw AIT-lw AIT-btmp))
  1153.       (if (or (> AIT-lt EAITlmax)(> AIT-bt EAITbmax)(<= AIT-lt EAITlmin)(<= AIT-bt EAITlmin))
  1154.           (progn
  1155.             (EAITmsg "mb_mld1" "\n" "018" "  ")
  1156.             (princ EAITlmin)(princ "x")(princ EAITlmin)(princ " / ")(princ EAITlmax)(princ "x")(princ EAITbmax)
  1157.             (EAITmsg "mb_mld1" " " "007" "\n\n")
  1158.           )
  1159.     (progn  
  1160.   (setq EAITl1 AIT-lw EAITb1 AIT-bw EAITl2 AIT-lt EAITb2 AIT-bt)
  1161.   (princ "\n  -> ")(princ EAITl2)(princ "x")(princ EAITb2)(princ "x")(princ EAITt1)(princ " ")(EAITmsg "mb_mld1" nil "007" "\n")
  1162.  
  1163.  
  1164.  
  1165.   (setq EAITlfl AIT-lw EAITbfl AIT-bw EAITtfl EAITt1)
  1166.  
  1167.    ;Rotation
  1168.    (if (= abks "0") (EAITibks AIT_ro))
  1169.    ;Rotation nicht bei Anwahl aktuelles BKS
  1170.    ;Einfuegen
  1171.    (EAITzst)
  1172.    (princ)
  1173.  
  1174.           )
  1175.        )
  1176.      )
  1177.   )
  1178.  
  1179.  (unload_dialog dat_zeig2) 
  1180.        
  1181.   )
  1182.  )
  1183.  
  1184. )
  1185.       
  1186. ;---------------------------------------------------------------------------
  1187.  
  1188. ;BKS im Screen - Breich
  1189. (defun EAITbksscreen ( / dat_zeig2 w_list dialogwert laenge breite tiefe
  1190.                          AIT-lt AIT-bt AIT-btmp AIT-lw AIT-bw stichwort
  1191.                          thema
  1192.                      )
  1193.    
  1194.   ;(EAITvari)
  1195.   ;(EAITvars)
  1196.  
  1197.    ;Dialogboxfunktion:
  1198.  
  1199.  (setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
  1200.        dialogwert 5
  1201.        EAITrot "i=MB-BKS2"
  1202.        AIT_ro "O"
  1203.  )
  1204.  
  1205.  (while (< 1 dialogwert)
  1206.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1207.  (if (not (new_dialog "bks" dat_zeig2)) (exit))
  1208.  (mode_tile AIT_ro 0)
  1209.  (fill_bks w_list)
  1210.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  1211.        stichwort ":item1"
  1212.  )
  1213.  (action_tile "help" "(hilfe stichwort thema)")
  1214.  (action_tile "bks_steu" "(done_dialog 4)")
  1215.  (action_tile "bks_vor" "(done_dialog 6)")
  1216.  (action_tile "accept" "(done_dialog 1)")
  1217.  (action_tile "cancel" "(done_dialog 0)")
  1218.  (setq dialogwert (start_dialog))   
  1219.  (start_dialog)
  1220.  
  1221.  
  1222. (if (= dialogwert 1)
  1223.   (progn
  1224.     (EAITibks AIT_ro)
  1225.   )
  1226. )
  1227.  
  1228. (if (= dialogwert 4)
  1229.   (progn
  1230.    (command EAITddbks) 
  1231.   )
  1232. )
  1233.   
  1234. (if (= dialogwert 6)
  1235.   (progn
  1236.     (command EAITbks EAITbvo)
  1237.   )
  1238. )
  1239.  
  1240. );while
  1241.  
  1242.  (unload_dialog dat_zeig2) 
  1243.  
  1244.   ;(EAITvarz)
  1245. (princ)
  1246.  
  1247. );defun EAITbksscreen       
  1248.  
  1249.  
  1250.  
  1251. ;---------------------------------------------------------------------------
  1252.  
  1253. ;Drsicht im Screen - Breich
  1254. (defun EAITdrsicht ( / dat_zeig2 w_list dialogwert stichwort thema)
  1255.    
  1256.   ;(EAITvari)
  1257.   ;(EAITvars)
  1258.  
  1259.    ;Dialogboxfunktion:
  1260.  
  1261.  (setq w_list (list "O" "U" "VL" "VR" "HR" "HL")
  1262.        dialogwert 5
  1263.        EAITrot "i=MB-BKS3"
  1264.        AIT_ro "O"
  1265.  )
  1266.  
  1267.  ;Anpassungen Hauer:
  1268.  (while (< 4 dialogwert)
  1269.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1270.  (if (not (new_dialog "drsicht" dat_zeig2)) (exit))
  1271.  (mode_tile AIT_ro 0)
  1272.  (fill_bks w_list)
  1273.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  1274.        stichwort ":item1"
  1275.  )
  1276.  (action_tile "help" "(hilfe stichwort thema)")
  1277.  (action_tile "isometrie" "(done_dialog 2)")
  1278.  (action_tile "accept" "(done_dialog 1)")
  1279.  (action_tile "cancel" "(done_dialog 0)")
  1280.  (setq dialogwert (start_dialog))   
  1281.  (start_dialog)
  1282.  
  1283.  ;Anpassungen Hauer:
  1284.  
  1285. (if (= dialogwert 2)
  1286.   (progn
  1287.      (EAITvari)
  1288.      (EAITmsg "mb_mld1" nil "039" nil)
  1289.      (command EAITplan EAITplf)
  1290.      (if (/= (tblnext "UCS" T) nil)
  1291.      (command EAITbks EAITbvo)
  1292.      )
  1293.      (EAITvarz)
  1294.   )
  1295. )
  1296.  ;Ende Anpassungen Hauer
  1297.  
  1298. (if (= dialogwert 1)
  1299.   (progn
  1300.    ;Rotation
  1301.    (EAITibks AIT_ro)
  1302.    (command EAITplan "")
  1303.    (princ)
  1304.   )
  1305. )
  1306.  
  1307. );while
  1308.  
  1309.  (unload_dialog dat_zeig2) 
  1310.  
  1311.   ;(EAITvarz)
  1312. (princ)
  1313. );defun EAITdrsicht
  1314.  
  1315.  
  1316. ;************************************************************************
  1317. ; Item - Projektarbeiten Hauer Beginn
  1318. ; Stand: 25.02.1997
  1319. ;************************************************************************
  1320.  
  1321.  
  1322. ;Definieren der Funktion 3D-Ansichten eines Bauteils
  1323.  
  1324. (defun EAIT3Dmansfen ( / viewdata AIT_md AIT_mv AIT_ms AIT_mi
  1325.                          viewdmd viewdmv viewdms viewdmi AIT_mlist
  1326.                          AIT_mlist1 AIT_view z1 
  1327.                          EAITdat_zeig dialogwert stichwort
  1328.                          thema panwahl panp1 panp2 panfenster m_neu
  1329.                          zoomwahl gesamt_id AIT-neudata blattreferenz
  1330.                          blattref_info blattname blattmasstab
  1331.                          asatzblatt l1 l2 blattelement blattdata
  1332.                          blattrefwert blattrefeed blattnamenwert blattnameeed
  1333.                          blattmasswert blattmasseed blattrefelement
  1334.                          blattlist masstablist blattplu blattpro
  1335.                          blattpluwert blattplueed blattprowert blattproeed
  1336.                          plulist prolist noblattlist nomasstablist
  1337.                          noplulist noprolist refdmd refdmv refdms refdmi
  1338.                          viewdmdreferenz viewdmireferenz viewdmvreferenz
  1339.                          viewdmsreferenz blattwahl blattschirmlist
  1340.                          blattmass_schirm dialogwert_blatt pointlist
  1341.                          refviewlist blattdmdwert blattdmdeed
  1342.                          blattdmiwert blattdmieed blattdmvwert blattdmveed
  1343.                          blattdmswert blattdmseed blattelementlist
  1344.                          schrref_info schrreferenz schriftfeldlist
  1345.                          schrrefwert schrrefeed kommentar blattkommentar
  1346.                          kommentarlist blattkommwert blattkommeed AIT-dat
  1347.                          tsx
  1348.                      )
  1349.      (EAITvari)
  1350.      (EAITvars)
  1351.  
  1352.      ;Dim-Layer einrichten:
  1353.      (if (not (tblsearch "LAYER" "EAITDIM_TOP"))
  1354.          (command EAITlay EAITlnew "EAITDIM_TOP" EAITlty "CONTINUOUS" "EAITDIM_TOP" EAITlfa "2" "EAITDIM_TOP" "")
  1355.      )
  1356.      (if (not (tblsearch "LAYER" "EAITDIM_FRONT"))
  1357.          (command EAITlay EAITlnew "EAITDIM_FRONT" EAITlty "CONTINUOUS" "EAITDIM_FRONT" EAITlfa "2" "EAITDIM_FRONT" "")
  1358.      )
  1359.      (if (not (tblsearch "LAYER" "EAITDIM_SIDE"))
  1360.          (command EAITlay EAITlnew "EAITDIM_SIDE" EAITlty "CONTINUOUS" "EAITDIM_SIDE" EAITlfa "2" "EAITDIM_SIDE" "")
  1361.      )
  1362.      (if (not (tblsearch "LAYER" "EAITDIM_VAR"))
  1363.          (command EAITlay EAITlnew "EAITDIM_VAR" EAITlty "CONTINUOUS" "EAITDIM_VAR" EAITlfa "2" "EAITDIM_VAR" "")
  1364.      )
  1365.  
  1366.  (setq EAITmansfen3d "ok"
  1367.        dialogwert_blatt 0
  1368.        AIT-dialogwertblatt dialogwert_blatt
  1369.        blattlist (list)
  1370.        blattelementlist (list)
  1371.        masstablist (list)
  1372.        plulist (list)
  1373.        prolist (list)
  1374.        noblattlist (list)
  1375.        nomasstablist (list)
  1376.        noplulist (list)
  1377.        noprolist (list)
  1378.        blattschirmlist (list)
  1379.        pointlist (list)
  1380.        refviewlist (list)
  1381.        schriftfeldlist (list)
  1382.        kommentarlist (list)
  1383.        AIT-blattlist blattlist
  1384.        AIT-plulist plulist
  1385.        AIT-prolist prolist
  1386.        AIT-noblattlist noblattlist
  1387.        AIT-nomasstablist nomasstablist
  1388.        AIT-noplulist noplulist
  1389.        AIT-noprolist noprolist
  1390.  
  1391.  )
  1392.  
  1393.  ;vorhandene Blaetter werden ausgelesen:
  1394.  (setq asatzblatt (ssget "X" '((0 . "POINT") (-3 ("BLATT3D_REFERENZ")))))
  1395.  (if (/= asatzblatt nil)
  1396.   (progn
  1397.  
  1398.   (setq
  1399.        l1 (sslength asatzblatt)
  1400.        l2 0
  1401.  
  1402.    )
  1403.  
  1404.     (repeat l1
  1405.       (setq blattelement (ssname asatzblatt l2)
  1406.             l2 (+ l2 1)
  1407.             blattdata (entget blattelement '("BLATT3D_REFERENZ"))
  1408.             blattrefwert (cdr (assoc -3 blattdata))
  1409.             ;Referenz des Blattes:
  1410.             blattrefeed (cdr (assoc 1005 (cdar blattrefwert)))
  1411.             blattdata (entget blattelement '("SCHR3D_REFERENZ"))
  1412.             schrrefwert (cdr (assoc -3 blattdata))
  1413.             ;Referenz des Blattes:
  1414.             schrrefeed (cdr (assoc 1005 (cdar schrrefwert)))
  1415.             blattdata (entget blattelement '("BLATTNAME"))
  1416.             blattnamenwert (cdr (assoc -3 blattdata))
  1417.             ;Name des Blattes:
  1418.             blattnameeed (cdr (assoc 1000 (cdar blattnamenwert)))
  1419.             blattdata (entget blattelement '("MASSTAB"))
  1420.             blattmasswert (cdr (assoc -3 blattdata))
  1421.             ;Masstab des Blattes:
  1422.             blattmasseed (cdr (assoc 1000 (cdar blattmasswert)))
  1423.             blattmass_schirm (EAITmstring blattmasseed)
  1424.             blattdata (entget blattelement '("KOMMENTAR"))
  1425.             blattkommwert (cdr (assoc -3 blattdata))
  1426.             ;Kommentar des Blattes:
  1427.             blattkommeed (cdr (assoc 1000 (cdar blattkommwert)))
  1428.             blattdata (entget blattelement '("BLATTPLU"))
  1429.             blattpluwert (cdr (assoc -3 blattdata))
  1430.             ;Punkt links unten:
  1431.             blattplueed (cdr (assoc 1010 (cdar blattpluwert)))
  1432.             blattdata (entget blattelement '("BLATTPRO"))
  1433.             blattprowert (cdr (assoc -3 blattdata))
  1434.             ;Punkt rechts oben:
  1435.             blattproeed (cdr (assoc 1010 (cdar blattprowert)))
  1436.             ;Views:
  1437.             blattdata (entget blattelement '("REFDMD"))
  1438.             blattdmdwert (cdr (assoc -3 blattdata))
  1439.             blattdmdeed (cdr (assoc 1005 (cdar blattdmdwert)))
  1440.             blattdata (entget blattelement '("REFDMI"))
  1441.             blattdmiwert (cdr (assoc -3 blattdata))
  1442.             blattdmieed (cdr (assoc 1005 (cdar blattdmiwert)))
  1443.             blattdata (entget blattelement '("REFDMV"))
  1444.             blattdmvwert (cdr (assoc -3 blattdata))
  1445.             blattdmveed (cdr (assoc 1005 (cdar blattdmvwert)))
  1446.             blattdata (entget blattelement '("REFDMS"))
  1447.             blattdmswert (cdr (assoc -3 blattdata))
  1448.             blattdmseed (cdr (assoc 1005 (cdar blattdmswert)))
  1449.  
  1450.  
  1451.       )
  1452.       ;nur gueltige Referenzen werden uebernommen:
  1453.       (setq blattrefelement (handent blattrefeed))
  1454.       (if (/= (entget blattrefelement) nil)
  1455.        (setq blattlist (append blattlist (list blattnameeed))
  1456.              schriftfeldlist (append schriftfeldlist (list schrrefeed))
  1457.              masstablist (append masstablist (list blattmasseed))
  1458.              kommentarlist (append kommentarlist (list blattkommeed))
  1459.              blattelementlist (append blattelementlist (list blattrefelement))
  1460.              plulist (append plulist (list blattplueed))
  1461.              prolist (append prolist (list blattproeed))
  1462.              blattschirmlist (append blattschirmlist
  1463.              (list (strcat blattnameeed "       Masstab " blattmass_schirm "    " blattkommeed)))
  1464.              pointlist (append pointlist (list blattelement))
  1465.              refviewlist (append refviewlist
  1466.              (list (list blattdmdeed blattdmieed blattdmveed blattdmseed)))
  1467.              AIT-blattlist blattlist
  1468.              AIT-plulist plulist
  1469.              AIT-prolist prolist
  1470.        )
  1471.        ;ungueltige Referenzen werden gespeichert:
  1472.        (setq noblattlist (append noblattlist (list blattnameeed))
  1473.              nomasstablist (append nomasstablist (list blattmasseed))
  1474.              noplulist (append noplulist (list blattplueed))
  1475.              noprolist (append noprolist (list blattproeed))
  1476.              AIT-noblattlist noblattlist
  1477.              AIT-nomasstablist nomasstablist
  1478.              AIT-noplulist noplulist
  1479.              AIT-noprolist noprolist
  1480.  
  1481.        )
  1482.  
  1483.       )
  1484.  
  1485.     ) ;repeat
  1486.  
  1487.   )
  1488.  )
  1489.  ;Blattauswahl bei vorhandenen Blaettern:
  1490.  (if (/= blattlist nil)
  1491.  (progn
  1492.  (setq EAITdat_zeig (load_dialog (strcat EAITpfd "EAITEM.DCL")))
  1493.  (setq thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  1494.        stichwort ":item1"
  1495.        dialogwert_blatt 0
  1496.        blattwahl 0
  1497.        AIT-blattwahl blattwahl
  1498.        AIT-dialogwertblatt dialogwert_blatt
  1499.  )
  1500.  
  1501.  (if (not (new_dialog "EAIT3DBLATT" EAITdat_zeig)) (exit))
  1502.  (set_tile "dwgname" (getvar "DWGNAME"))
  1503.  (start_list "blattanzeige" 3)
  1504.    (mapcar 'add_list blattschirmlist)
  1505.  (end_list)
  1506.  
  1507.  (action_tile "blattanzeige" "(setq blattwahl (atoi $value))")
  1508.  (action_tile "goto" "(done_dialog 2)")
  1509.  (action_tile "new" "(done_dialog 0)")
  1510.  (action_tile "erase" "(done_dialog 1)")
  1511.  (action_tile "ende" "(done_dialog 3)")
  1512.  (action_tile "eait_hilfe" "(hilfe stichwort thema)") 
  1513.  
  1514.  (setq dialogwert_blatt (start_dialog))
  1515.  (start_dialog)
  1516.  (unload_dialog EAITdat_zeig)
  1517.  (setq AIT-blattwahl blattwahl
  1518.        AIT-dialogwertblatt dialogwert_blatt
  1519.  )
  1520.  
  1521.  
  1522.   ) ;progn
  1523.  ) ;if
  1524.  
  1525.  ;Blatt loeschen:
  1526.  (if (= dialogwert_blatt 1)
  1527.   (progn
  1528.     ;Anpassungen Hauer:
  1529.     (setq tsx (getvar "TILEMODE"))
  1530.     (setvar "TILEMODE" 0)
  1531.     (command EAITpap)
  1532.     ;Datenpunkt:
  1533.     (entdel (nth blattwahl pointlist))
  1534.     ;Blatt:
  1535.     (entdel (nth blattwahl blattelementlist))
  1536.     ;Schriftfeld:
  1537.     (entdel (handent (nth blattwahl schriftfeldlist)))
  1538.     ;Views:
  1539.     (entdel (handent (nth 0 (nth blattwahl refviewlist))))
  1540.     (entdel (handent (nth 1 (nth blattwahl refviewlist))))
  1541.     (entdel (handent (nth 2 (nth blattwahl refviewlist))))
  1542.     (entdel (handent (nth 3 (nth blattwahl refviewlist))))
  1543.     (setvar "TILEMODE" tsx)
  1544.     )
  1545.  )
  1546.  
  1547.  ;Gehezu Blatt:
  1548.  (if (= dialogwert_blatt 2)
  1549.    (progn
  1550.     (setvar "TILEMODE" 0)
  1551.     (command EAITpap)
  1552.     (command EAITzom (nth blattwahl plulist) (nth blattwahl prolist))
  1553.     )
  1554.   )
  1555.  
  1556.  ;Nur wenn zu Blatt gegangen oder Blatt eingefuegt werden soll:
  1557.  (if (or (= dialogwert_blatt 0) (= dialogwert_blatt 2))
  1558.  (progn
  1559.  
  1560.  ;Nur wenn Blatt eingefuegt werden soll:
  1561.  (if (= dialogwert_blatt 0)
  1562.   (progn
  1563.  
  1564.  ;Festlegung von Abmassen:
  1565.  (setq
  1566.       AIT-masslist (list
  1567.                (list 210.0 297.0)(list 420.0 297.0)
  1568.                (list 594.0 420.0)(list 841.0 594.0)
  1569.                (list 1189.0 841.0)
  1570.                )
  1571.       AIT-p1list (list (list 0.0 0.0 0.0) (list 600.0 0.0 0.0)
  1572.                        (list 1500.0 0.0 0.0) (list 2500.0 0.0 0.0)
  1573.                        (list 3500.0 0.0 0.0)
  1574.                  )
  1575.  )
  1576.  
  1577.  ;Rahmen im Papierbereich einfuegen:
  1578.  (setvar "TILEMODE" 0)
  1579.  (command EAITpap)
  1580.  (print)
  1581.  (print)
  1582.   (if (not EAITzrn)(load (strcat EAITpfn "EAITZRN"))(princ))(EAITzrn "A4" nil nil)
  1583.  ;Bei Abbruch Beenden der Funktion:
  1584.  (if (/= AIT_dialogwert 0)
  1585.  (progn
  1586.  
  1587.  ;Automatisches Regenerieren ausschalten:
  1588.  ;(setvar "REGENMODE" 0)
  1589.  
  1590.  ;Berechnung der Blattpunkte, Einfuegen Datenpunkt:
  1591.  (EAITPberechnung AIT_rahmennr)
  1592.  
  1593.  
  1594.   ;Mansfen erzeugen und Masstab ermitteln:
  1595.  
  1596.   ;Draufsicht
  1597.   (setq EAITmansfenlayer "EAITDIM_TOP")
  1598. ;  (EAITmansfen pmlu pmm "_e" "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  1599.   (EAITmansfen pmlu pmm "_e" "EAITucstop");top
  1600.   (setq viewdata (entlast)
  1601.         viewdmd viewdata
  1602.         refdmd (cdr (assoc 5 (entget viewdata)))
  1603.   )
  1604.   (if (= AIT_mauto "1")
  1605.    (EAITmberechnung viewdata)
  1606.    (setq AIT_masstab (/ 1 AIT_ms1a)    
  1607.    )
  1608.   )
  1609.   (setq AIT_md AIT_masstab)
  1610.  
  1611.   ;Iso
  1612.   (setq EAITmansfenlayer "EAITDIM_NO")
  1613.   ;(EAITmansfen pmru pmm "_e" "0,0,0" " 1,0,0" "0,1,0")
  1614.   (EAITmansfen pmru pmm "_e" "world")
  1615.   (setq viewdata (entlast)
  1616.         viewdmi viewdata
  1617.         refdmi (cdr (assoc 5 (entget viewdata)))
  1618.  
  1619.   )
  1620.   (if (= AIT_mauto "1")
  1621.    (EAITmberechnung viewdata)
  1622.    (setq AIT_masstab (/ 1 AIT_ms1a)
  1623.    )
  1624.   )
  1625.   (setq AIT_mi AIT_masstab)
  1626.  
  1627.   ;Vorderansicht
  1628.   (setq EAITmansfenlayer "EAITDIM_FRONT")
  1629. ;  (EAITmansfen pmlo pmm "_e" "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  1630.   (EAITmansfen pmlo pmm "_e" "EAITucsfr");fr
  1631.   (setq viewdata (entlast)
  1632.         viewdmv viewdata
  1633.         refdmv (cdr (assoc 5 (entget viewdata)))
  1634.   )
  1635.   (if (= AIT_mauto "1")
  1636.    (EAITmberechnung viewdata)
  1637.    (setq AIT_masstab (/ 1 AIT_ms1a)
  1638.    )
  1639.   )
  1640.   (setq AIT_mv AIT_masstab)
  1641.  
  1642.   ;Seitenansicht
  1643.   (setq EAITmansfenlayer "EAITDIM_SIDE")
  1644. ;  (EAITmansfen pmro pmm "_e" "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  1645.   (EAITmansfen pmro pmm "_e" "EAITucsfl");fl
  1646.   (setq viewdata (entlast)
  1647.         viewdms viewdata
  1648.         refdms (cdr (assoc 5 (entget viewdata)))
  1649.  
  1650.   )
  1651.   (if (= AIT_mauto "1")
  1652.    (EAITmberechnung viewdata)
  1653.    (setq AIT_masstab (/ 1 AIT_ms1a)
  1654.    )
  1655.   )
  1656.   (setq AIT_ms AIT_masstab)
  1657.  
  1658.   ;Masstaebe auswerten:
  1659.   (setq AIT_mlist (list AIT_md AIT_mi AIT_ms AIT_mv)
  1660.         AIT_mlist1 (cons 'min AIT_mlist)
  1661.         AIT_zm (eval AIT_mlist1)
  1662.         AIT_zm (strcat (rtos AIT_zm 2 6) "xp")
  1663.   )
  1664.  
  1665.  
  1666.  (command EAITloes viewdmv viewdmd viewdmi viewdms "")
  1667.  
  1668.   ;Mansfen im neuen Masstab erzeugen:
  1669.  
  1670.   ;Draufsicht
  1671.   (setq EAITmansfenlayer "EAITDIM_TOP")
  1672. ;  (EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  1673.   (EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
  1674.   (setq viewdata (entlast)
  1675.         viewdmd viewdata
  1676.         refdmd (cdr (assoc 5 (entget viewdata)))
  1677.  
  1678.   )
  1679.  
  1680.   ;Iso
  1681.   (setq EAITmansfenlayer "EAITDIM_NO")
  1682.   ;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
  1683.   (EAITmansfen pmru pmm AIT_zm "world")
  1684.   (setq viewdata (entlast)
  1685.         viewdmi viewdata
  1686.         refdmi (cdr (assoc 5 (entget viewdata)))
  1687.  
  1688.   )
  1689.  
  1690.   ;Vorderansicht
  1691.   (setq EAITmansfenlayer "EAITDIM_FRONT")
  1692. ;  (EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  1693.   (EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
  1694.   (setq viewdata (entlast)
  1695.         viewdmv viewdata
  1696.         refdmv (cdr (assoc 5 (entget viewdata)))
  1697.  
  1698.   )
  1699.  
  1700.   ;Seitenansicht
  1701.   (setq EAITmansfenlayer "EAITDIM_SIDE")
  1702. ;  (EAITmansfen pmro pmm "_e" "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  1703.   (EAITmansfen pmro pmm "_e" "EAITucsfl");fl
  1704.   (setq viewdata (entlast)
  1705.         viewdms viewdata
  1706.         refdms (cdr (assoc 5 (entget viewdata)))
  1707.  
  1708.   )
  1709.  
  1710.   (print)(print)(print)(print)(print)
  1711.  
  1712.    ) ;progn AIT_dialogwert = 0
  1713.   ) ;if bei Blatteinfuegung aus EAIT_zrn.lsp
  1714.  
  1715.    ) ;progn  dialogwert_blatt = 0
  1716.   ) ;if bei Blattauswahl aus vorhandenen Blaettern
  1717.  
  1718.  (if (/= AIT_dialogwert 0)
  1719.   (progn
  1720.  
  1721.   ;bei gehezu Blatt:
  1722.   ;es muessen alle Variablen mit Werten belegt werden, welche auch
  1723.   ;beim Einfuegen mit Werten belegt werden
  1724.   (if (= dialogwert_blatt 2)
  1725.    (progn
  1726.      (setq AIT_zm (nth blattwahl masstablist)
  1727.            AIT_rahmen (nth blattwahl blattlist)
  1728.            viewdmd (handent (nth 0 (nth blattwahl refviewlist)))
  1729.            viewdmi (handent (nth 1 (nth blattwahl refviewlist)))
  1730.            viewdmv (handent (nth 2 (nth blattwahl refviewlist)))
  1731.            viewdms (handent (nth 3 (nth blattwahl refviewlist)))
  1732.            refdmd (nth 0 (nth blattwahl refviewlist))
  1733.            refdmi (nth 1 (nth blattwahl refviewlist))
  1734.            refdmv (nth 2 (nth blattwahl refviewlist))
  1735.            refdms (nth 3 (nth blattwahl refviewlist))
  1736.  
  1737.            ;Blatt:
  1738.            AIT_rahmenelement (nth blattwahl blattelementlist) 
  1739.            ;Schriftfeld:
  1740.            AIT_schriftfeldelement (handent (nth blattwahl schriftfeldlist)) 
  1741.        )
  1742.       (cond  ((= AIT_rahmen "DIN A4")(setq AIT_rahmennr 0))
  1743.              ((= AIT_rahmen "DIN A3")(setq AIT_rahmennr 1))
  1744.              ((= AIT_rahmen "DIN A2")(setq AIT_rahmennr 2))
  1745.              ((= AIT_rahmen "DIN A1")(setq AIT_rahmennr 3))
  1746.              ((= AIT_rahmen "DIN A0")(setq AIT_rahmennr 4))
  1747.       )
  1748.      ;alten Datenpunkt loeschen:
  1749.      (command EAITloes (nth blattwahl pointlist) "")
  1750.       ;Berechnung der Blattpunkte, Einfuegen neuen Datenpunkt:
  1751.       (EAITPberechnung AIT_rahmennr)
  1752.  
  1753.    ) ;progn  dialogwert_blatt = 2
  1754.   ) ;if
  1755.  
  1756.   ;Masstabstring erzeugen:
  1757.   (EAITmstring AIT_zm)
  1758.  
  1759.  
  1760.  ;Dialogbox Masstab anpassen:
  1761.  (setq EAITdat_zeig (load_dialog (strcat EAITpfd "EAITEM.DCL")))
  1762.  (setq dialogwert 5
  1763.        thema (EAITmg "mb_mld21" "012");Hilfe fuer einen item-Befehl
  1764.        stichwort ":item1"
  1765.        m_neu AIT_screenmasstab
  1766.        AIT_zmstart AIT_zm ;Masstab zu Beginn der Dialogbox
  1767.        AIT_zmchange AIT_zm ;Masstab zu Beginn der Dialogbox
  1768.        kommentar ""
  1769.  )
  1770.  
  1771.  (if (= dialogwert_blatt 2)
  1772.   (setq kommentar (nth blattwahl kommentarlist))
  1773.  )
  1774.  
  1775.  (while (< 2 dialogwert)
  1776.  (if (not (new_dialog "EAITMASSTAB" EAITdat_zeig)) (exit))
  1777.  (set_tile "dwgname" (getvar "DWGNAME"))
  1778.  (set_tile "bl_format" AIT_rahmen)
  1779.  (set_tile "m_akt" AIT_screenmasstab)
  1780.  (set_tile "m_neu" AIT_screenmasstab)
  1781.  (set_tile "kommentar" kommentar)
  1782.  (action_tile "m_neu" "(setq m_neu $value)(EAITmasstabneu m_neu)")
  1783.  (action_tile "kommentar" "(setq kommentar $value)")
  1784.  (action_tile "cancel_all" "(done_dialog 2)")
  1785.  (action_tile "cancel" "(done_dialog 1)")
  1786.  (action_tile "accept" "(done_dialog 0)")
  1787.  (action_tile "pan" "(done_dialog 3)")
  1788.  (action_tile "vsicht" "(done_dialog 4)") 
  1789.  (action_tile "help" "(hilfe stichwort thema)") 
  1790.  
  1791.  (setq dialogwert (start_dialog))
  1792.  
  1793.   (if (= dialogwert 3) ;Pan - Funktion
  1794.    (progn
  1795.     (print)
  1796.     (print)
  1797.    (while (/= panwahl (EAITmg "mb_mld21" "005")) ;solange nicht "Ende"
  1798.      (initget (strcat (EAITmg "mb_mld21" "003") " " (EAITmg "mb_mld21" "004") " " (EAITmg "mb_mld21" "005"))) ;Ansicht Pan Ende
  1799.      (setq panwahl (getkword (strcat "\n"  (EAITmg "mb_mld21" "006") " "))) ;Ansichtswahl / Pan / Ende
  1800.      (if (= panwahl nil) (setq panwahl (EAITmg "mb_mld21" "005"))); "Ende" ist Vorgabe und wird durch RETURN erreicht
  1801.      (cond 
  1802.        ; wenn "Ansichtswahl"
  1803.        ((= panwahl (EAITmg "mb_mld21" "003"))
  1804.        (command EAITmod)
  1805.        (EAITmsg "mb_mld21" "\n" "007" nil);Ansicht durch Doppelklick waehlen!
  1806.        (setq panfenster (getpoint))
  1807.        (EAITmsg "mb_mld21" "\n" "008" nil);Verschiebung:
  1808.        (setq panp1 (getpoint))
  1809.        (EAITmsg "mb_mld21" "\n" "009" nil);zweiter Punkt:
  1810.        (setq panp2 (getpoint panp1))
  1811.        ;Anpassungen Hauer:
  1812.        (if (and (/= panp1 nil)(/= panp2 nil))
  1813.         (progn
  1814.         (setq expold (getvar "EXPERT"))
  1815.         (setvar "EXPERT" 1)
  1816.         (command EAITpan panp1 panp2)
  1817.         (setvar "EXPERT" expold)
  1818.         )
  1819.        )
  1820.        ;Anpassungen Hauer:
  1821.        ;Linien verdecken:
  1822.        (command EAITverd)
  1823.        (command EAITpap)
  1824.        (print)(print)(print)(print)(print)
  1825.        )
  1826.        ; wenn "Pan"
  1827.        ((= panwahl (EAITmg "mb_mld21" "004"))
  1828.        (command EAITmod)
  1829.        (EAITmsg "mb_mld21" "\n" "008" nil);Verschiebung:
  1830.        (setq panp1 (getpoint))
  1831.        (EAITmsg "mb_mld21" "\n" "009" nil);zweiter Punkt:
  1832.        (setq panp2 (getpoint panp1))
  1833.        ;Anpassungen Hauer:
  1834.        (if (and (/= panp1 nil)(/= panp2 nil))
  1835.          (progn
  1836.         (setq expold (getvar "EXPERT"))
  1837.         (setvar "EXPERT" 1)
  1838.         (command EAITpan panp1 panp2)
  1839.         (setvar "EXPERT" expold)
  1840.           )
  1841.        )
  1842.        ;Anpassungen Hauer:
  1843.        ;Linien verdecken:
  1844.        (command EAITverd)
  1845.        (command EAITpap)
  1846.        (print)(print)(print)(print)(print)
  1847.        )
  1848.       )
  1849.     ) ;while
  1850.     (setq panwahl nil)
  1851.    ) ;progn
  1852.   ) ;if
  1853.  
  1854.  
  1855.  
  1856.   ;Masstaebe:
  1857.   ;- AIT_zmstart:  Masstab zu Beginn der Dialogbox
  1858.   ;- AIT_zmchange: Masstab vor der Aenderung in Dialogbox
  1859.   ;- AIT_zm:       Masstab aktuell
  1860.  
  1861.   (if (= dialogwert 4) ;Zoom-Funktion
  1862.    (progn
  1863.     (print)
  1864.     (print)
  1865.     ;nur bei neuem Masstab:
  1866.     (if (/= AIT_zm AIT_zmchange)
  1867.      (progn
  1868.         (command EAITloes viewdmv viewdmd viewdmi viewdms "")
  1869.  
  1870.         ;Mansfen im neuen Masstab erzeugen:
  1871.  
  1872.         ;Draufsicht
  1873.         (setq EAITmansfenlayer "EAITDIM_TOP")
  1874.         ;(EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  1875.         (EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
  1876.         (setq viewdata (entlast)
  1877.               viewdmd viewdata
  1878.               refdmd (cdr (assoc 5 (entget viewdata)))
  1879.  
  1880.         )
  1881.  
  1882.         ;Iso
  1883.         (setq EAITmansfenlayer "EAITDIM_NO")
  1884.         ;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
  1885.         (EAITmansfen pmru pmm AIT_zm "world")
  1886.         (setq viewdata (entlast)
  1887.               viewdmi viewdata
  1888.               refdmi (cdr (assoc 5 (entget viewdata)))
  1889.  
  1890.         )
  1891.  
  1892.         ;Vorderansicht
  1893.         (setq EAITmansfenlayer "EAITDIM_FRONT")
  1894.         ;(EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  1895.         (EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
  1896.         (setq viewdata (entlast)
  1897.               viewdmv viewdata
  1898.               refdmv (cdr (assoc 5 (entget viewdata)))
  1899.  
  1900.         )
  1901.  
  1902.         ;Seitenansicht
  1903.         (setq EAITmansfenlayer "EAITDIM_SIDE")
  1904.         ;(EAITmansfen pmro pmm AIT_zm "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  1905.         (EAITmansfen pmro pmm AIT_zm "EAITucsfl");fl
  1906.         (setq viewdata (entlast)
  1907.               viewdms viewdata
  1908.               refdms (cdr (assoc 5 (entget viewdata)))
  1909.  
  1910.         )
  1911.         (print)(print)(print)(print)(print)
  1912.      ) ;progn
  1913.     ) ;if
  1914.  
  1915.     (setq zoomwahl (EAITmg "mb_mld21" "005"))
  1916.     (initget (strcat (EAITmg "mb_mld21" "010") " " (EAITmg "mb_mld21" "005")))  ;Zurⁿck Ende
  1917.     (setq zoomwahl (getkword (strcat "\n"  (EAITmg "mb_mld21" "011") " ")))
  1918.     ;Anpassungen Hauer:
  1919.     (if (= zoomwahl nil)(setq zoomwahl (EAITmg "mb_mld21" "005")))
  1920.     ;nur bei Masstabsaenderung:
  1921.     (if (and (= zoomwahl (EAITmg "mb_mld21" "010")) (/= AIT_zm AIT_zmchange))
  1922.      (progn
  1923.         (command EAITloes viewdmv viewdmd viewdmi viewdms "")
  1924.  
  1925.         ;Mansfen im alten Masstab wiederherstellen:
  1926.      Bemstil einrichten:
  1927.       (setvar "DIMSCALE" (/ 1 (atof AIT_zmchange)))
  1928.  
  1929.         ;Draufsicht
  1930.         (setq EAITmansfenlayer "EAITDIM_TOP")
  1931.         ;(EAITmansfen pmlu pmm AIT_zmchange "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  1932.         (EAITmansfen pmlu pmm AIT_zmchange "EAITucstop");top
  1933.         (setq viewdata (entlast)
  1934.               viewdmd viewdata
  1935.               refdmd (cdr (assoc 5 (entget viewdata)))
  1936.  
  1937.         )
  1938.  
  1939.         ;Iso
  1940.         (setq EAITmansfenlayer "EAITDIM_NO")
  1941.         ;(EAITmansfen pmru pmm AIT_zmchange "0,0,0" " 1,0,0" "0,1,0")
  1942.           (EAITmansfen pmru pmm AIT_zmchange "world")
  1943.         (setq viewdata (entlast)
  1944.               viewdmi viewdata
  1945.               refdmi (cdr (assoc 5 (entget viewdata)))
  1946.  
  1947.         )
  1948.  
  1949.         ;Vorderansicht
  1950.         (setq EAITmansfenlayer "EAITDIM_FRONT")
  1951.         ;(EAITmansfen pmlo pmm AIT_zmchange "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  1952.         (EAITmansfen pmlo pmm AIT_zmchange "EAITucsfr");fr
  1953.         (setq viewdata (entlast)
  1954.               viewdmv viewdata
  1955.               refdmv (cdr (assoc 5 (entget viewdata)))
  1956.  
  1957.         )
  1958.  
  1959.         ;Seitenansicht
  1960.         (setq EAITmansfenlayer "EAITDIM_SIDE")
  1961.         ;(EAITmansfen pmro pmm AIT_zmchange "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  1962.         (EAITmansfen pmro pmm AIT_zmchange "EAITucsfl");fl
  1963.         (setq viewdata (entlast)
  1964.               viewdms viewdata
  1965.               refdms (cdr (assoc 5 (entget viewdata)))
  1966.  
  1967.         )
  1968.         (setq AIT_zm AIT_zmchange)
  1969.         (print)(print)(print)(print)(print)
  1970.       )
  1971.     )
  1972.     (if (= zoomwahl (EAITmg "mb_mld21" "005"))
  1973.      (progn
  1974.       (setq AIT_zmchange AIT_zm)
  1975.       )
  1976.      )
  1977.     ;Sicherung des Zwischenmasstabes
  1978.     ;Masstabstring erzeugen:
  1979.     (EAITmstring AIT_zm)
  1980.    )
  1981.   )
  1982.  
  1983.   (if (= dialogwert 0) ;Ok-Button
  1984.    (progn
  1985.     (print)
  1986.     (print)
  1987.     ;nur bei neuem Masstab:
  1988.     (if (/= AIT_zm AIT_zmchange)
  1989.      (progn
  1990.         (command EAITloes viewdmv viewdmd viewdmi viewdms "")
  1991.  
  1992.         ;Mansfen im neuen Masstab erzeugen:
  1993.      Bemstil einrichten:
  1994.       (setvar "DIMSCALE" (/ 1 (atof AIT_zm)))
  1995.  
  1996.         ;Draufsicht
  1997.         (setq EAITmansfenlayer "EAITDIM_TOP")
  1998.         ;(EAITmansfen pmlu pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  1999.         (EAITmansfen pmlu pmm AIT_zm "EAITucstop");top
  2000.         (setq viewdata (entlast)
  2001.               viewdmd viewdata
  2002.               refdmd (cdr (assoc 5 (entget viewdata)))
  2003.  
  2004.         )
  2005.  
  2006.         ;Iso
  2007.         (setq EAITmansfenlayer "EAITDIM_NO")
  2008.         ;(EAITmansfen pmru pmm AIT_zm "0,0,0" " 1,0,0" "0,1,0")
  2009.         (EAITmansfen pmru pmm AIT_zm "world")
  2010.         (setq viewdata (entlast)
  2011.               viewdmi viewdata
  2012.               refdmi (cdr (assoc 5 (entget viewdata)))
  2013.  
  2014.         )
  2015.  
  2016.         ;Vorderansicht
  2017.         (setq EAITmansfenlayer "EAITDIM_FRONT")
  2018.         ;(EAITmansfen pmlo pmm AIT_zm "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  2019.         (EAITmansfen pmlo pmm AIT_zm "EAITucsfr");fr
  2020.         (setq viewdata (entlast)
  2021.               viewdmv viewdata
  2022.               refdmv (cdr (assoc 5 (entget viewdata)))
  2023.  
  2024.         )
  2025.  
  2026.         ;Seitenansicht
  2027.         (setq EAITmansfenlayer "EAITDIM_SIDE")
  2028.         ;(EAITmansfen pmro pmm AIT_zm "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  2029.         (EAITmansfen pmro pmm AIT_zm "EAITucsfl");fl
  2030.         (setq viewdata (entlast)
  2031.               viewdms viewdata
  2032.               refdms (cdr (assoc 5 (entget viewdata)))
  2033.  
  2034.         )
  2035.         (print)(print)(print)(print)(print)
  2036.      ) ;progn
  2037.     ) ;if
  2038.    )
  2039.   )
  2040.  
  2041.   (if (= dialogwert 1) ;Cancel-Button
  2042.    (progn
  2043.     (print)
  2044.     (print)
  2045.     ;nur bei neuem Masstab:
  2046.     (if (/= AIT_zm AIT_zmstart)
  2047.      (progn
  2048.         (command EAITloes viewdmv viewdmd viewdmi viewdms "")
  2049.  
  2050.         ;Mansfen im neuen Masstab erzeugen:
  2051.      Bemstil einrichten:
  2052.       (setvar "DIMSCALE" (/ 1 (atof AIT_zmstart)))
  2053.  
  2054.         ;Draufsicht
  2055.         (setq EAITmansfenlayer "EAITDIM_TOP")
  2056.         ;(EAITmansfen pmlu pmm AIT_zmstart "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.7072, 0.4081,-0.5774");top
  2057.         (EAITmansfen pmlu pmm AIT_zmstart "EAITucstop");top
  2058.         (setq viewdata (entlast)
  2059.               viewdmd viewdata
  2060.               refdmd (cdr (assoc 5 (entget viewdata)))
  2061.  
  2062.         )
  2063.  
  2064.         ;Iso
  2065.         (setq EAITmansfenlayer "EAITDIM_NO")
  2066.         ;(EAITmansfen pmru pmm AIT_zmstart "0,0,0" " 1,0,0" "0,1,0")
  2067.         (EAITmansfen pmru pmm AIT_zmstart "world")
  2068.         (setq viewdata (entlast)
  2069.               viewdmi viewdata
  2070.               refdmi (cdr (assoc 5 (entget viewdata)))
  2071.  
  2072.         )
  2073.  
  2074.         ;Vorderansicht
  2075.         (setq EAITmansfenlayer "EAITDIM_FRONT")
  2076.         ;(EAITmansfen pmlo pmm AIT_zmstart "0,0,0" " 0.7070, 0.4083,-0.5774" "-0.0001, 0.8165, 0.5773");fr
  2077.         (EAITmansfen pmlo pmm AIT_zmstart "EAITucsfr");fr
  2078.         (setq viewdata (entlast)
  2079.               viewdmv viewdata
  2080.               refdmv (cdr (assoc 5 (entget viewdata)))
  2081.  
  2082.         )
  2083.  
  2084.         ;Seitenansicht
  2085.         (setq EAITmansfenlayer "EAITDIM_SIDE")
  2086.         ;(EAITmansfen pmro pmm AIT_zmstart "0,0,0" " 0.7072,-0.4081, 0.5774" "-0.0001, 0.8165, 0.5773");fl
  2087.         (EAITmansfen pmro pmm AIT_zmstart "EAITucsfl");fl
  2088.         (setq viewdata (entlast)
  2089.               viewdms viewdata
  2090.               refdms (cdr (assoc 5 (entget viewdata)))
  2091.  
  2092.         )
  2093.         (print)(print)(print)(print)(print)
  2094.      ) ;progn
  2095.     ) ;if
  2096.       (setq AIT_zm AIT_zmstart)
  2097.  
  2098.    )
  2099.   )
  2100.  
  2101.   (if (= dialogwert 2) ;Blatt loeschen
  2102.    (progn
  2103.     (command EAITpap)
  2104.     (command EAITloes viewdmv viewdmd viewdmi viewdms AITblattpunkt "")
  2105.     (command EAITloes "_w" plu pro "")
  2106.     (setvar "TILEMODE" 1)
  2107.     
  2108.    )
  2109.   )
  2110.  
  2111.   (start_dialog)
  2112.  ) ;while
  2113.  (unload_dialog EAITdat_zeig)
  2114.  
  2115.  ;EED-Verknuepfung realisieren:
  2116.  ;nur wenn Blatt vorhanden:
  2117.        (if (/= dialogwert 2)
  2118.         (progn
  2119.           
  2120.           ;Blattreferenz:
  2121.            (if (not (tblsearch "appid" "BLATT3D_REFERENZ"))
  2122.              (regapp "BLATT3D_REFERENZ")
  2123.            )
  2124.           ;Schriftfeldreferenz:
  2125.            (if (not (tblsearch "appid" "SCHR3D_REFERENZ"))
  2126.              (regapp "SCHR3D_REFERENZ")
  2127.            )
  2128.  
  2129.           ;Blattname:
  2130.            (if (not (tblsearch "appid" "BLATTNAME"))
  2131.              (regapp "BLATTNAME")
  2132.            )
  2133.           ;Masstab:
  2134.            (if (not (tblsearch "appid" "MASSTAB"))
  2135.              (regapp "MASSTAB")
  2136.            )
  2137.           ;Kommentar:
  2138.            (if (not (tblsearch "appid" "KOMMENTAR"))
  2139.              (regapp "KOMMENTAR")
  2140.            )
  2141.  
  2142.           ;Blatt Ecke links unten:
  2143.            (if (not (tblsearch "appid" "BLATTPLU"))
  2144.              (regapp "BLATTPLU")
  2145.            )
  2146.           ;Blatt Ecke rechts oben:
  2147.            (if (not (tblsearch "appid" "BLATTPRO"))
  2148.              (regapp "BLATTPRO")
  2149.            )
  2150.           ;View-Referenzen:
  2151.            (if (not (tblsearch "appid" "REFDMD"))
  2152.              (regapp "REFDMD")
  2153.            )
  2154.           ;View-Referenzen:
  2155.            (if (not (tblsearch "appid" "REFDMI"))
  2156.              (regapp "REFDMI")
  2157.            )
  2158.           ;View-Referenzen:
  2159.            (if (not (tblsearch "appid" "REFDMV"))
  2160.              (regapp "REFDMV")
  2161.            )
  2162.           ;View-Referenzen:
  2163.            (if (not (tblsearch "appid" "REFDMS"))
  2164.              (regapp "REFDMS")
  2165.            )
  2166.  
  2167.           ;Blatt-Referenz festlegen:
  2168.            (setq 
  2169.             blattref_info (cdr (assoc 5 (entget AIT_rahmenelement)))
  2170.            )
  2171.  
  2172.           ;Schriftfeld-Referenz festlegen:
  2173.            (setq 
  2174.             schrref_info (cdr (assoc 5 (entget AIT_schriftfeldelement)))
  2175.            )
  2176.  
  2177.           ;Punkt modifizieren:
  2178.           ;EED: - Referenz des Blattes
  2179.           ;     - Punkt
  2180.           ; Verknüpfung Punkt - Blattreferenz
  2181.            (setq  
  2182.                  blattreferenz (list "BLATT3D_REFERENZ" (cons 1005 blattref_info))
  2183.                  schrreferenz (list "SCHR3D_REFERENZ" (cons 1005 schrref_info))
  2184.                  blattname (list "BLATTNAME" (cons 1000 AIT_rahmen))
  2185.                  blattmasstab (list "MASSTAB" (cons 1000 AIT_zm))
  2186.                  blattkommentar (list "KOMMENTAR" (cons 1000 kommentar))
  2187.                  blattplu (list "BLATTPLU" (cons 1010 plu))
  2188.                  blattpro (list "BLATTPRO" (cons 1010 pro))
  2189.                  viewdmdreferenz (list "REFDMD" (cons 1005 refdmd))
  2190.                  viewdmireferenz (list "REFDMI" (cons 1005 refdmi))
  2191.                  viewdmvreferenz (list "REFDMV" (cons 1005 refdmv))
  2192.                  viewdmsreferenz (list "REFDMS" (cons 1005 refdms))
  2193.  
  2194.                  gesamt_id (list
  2195.                  (list -3 blattname blattmasstab blattkommentar blattreferenz schrreferenz viewdmdreferenz
  2196.                   viewdmireferenz viewdmvreferenz viewdmsreferenz blattplu blattpro)
  2197.                  )
  2198.                  AIT-neudata (append (entget AITblattpunkt) gesamt_id)
  2199.            )
  2200.            (entmod AIT-neudata)
  2201.  
  2202.         )
  2203.        )
  2204.  
  2205.  
  2206.  
  2207.  
  2208.   (setvar "CLAYER" "0")
  2209. ;  (command EAITlay EAITlfr "EAIT3D_VIEW" "")
  2210.  
  2211.  
  2212.  (setq EAITmansfen3d nil)
  2213.  ;Automatisches Regenerieren einschalten:
  2214.  ;(setvar "REGENMODE" 1)
  2215.  
  2216.    ) ;progn AIT_dialogwert = 0
  2217.   ) ;if bei Blatteinfuegung aus EAIT_zrn.lsp
  2218.  
  2219.    ) ;progn  dialogwert_blatt = 0 oder 2
  2220.   ) ;if bei Blattauswahl aus vorhandenen Blaettern
  2221.  
  2222. ;Masstab anpassen:
  2223.  
  2224.                  (setq EAITms (getvar "DIMSCALE"))
  2225.      (EAITmkr "B" nil)
  2226.  
  2227. (EAITvarz)
  2228.  
  2229. (princ)
  2230.  
  2231. );defun EAIT3DMANSFEN
  2232.  
  2233. ;--------------------------------------------------------------------------
  2234. ;Definieren der Funktion zur Berechnung von Blattpunkten
  2235. ;und Einfuegen des Datenpunkts  + Layerfestlegung
  2236.  
  2237. (defun EAITPberechnung (AIT_rahmennr / rahmendata ebene blattwert
  2238.                         blatt01
  2239.                        )
  2240.  
  2241.  
  2242.  ;Berechnung der Mansfenpunkte:
  2243.  (setq rahmendata (nth AIT_rahmennr AIT-masslist)
  2244.       ;Blatteckpunkte:
  2245.       rxlu (car (nth AIT_rahmennr AIT-p1list))
  2246.       rylu (cadr (nth AIT_rahmennr AIT-p1list))
  2247.       plu (list rxlu rylu 0.0)
  2248.       rxro (car rahmendata) ryro (cadr rahmendata)
  2249.       pro (list rxro ryro 0.0)
  2250.       pro (polar pro 0.0 rxlu)
  2251.  )
  2252.    ;bei Neueinfuegungen Mansfenpunkte bei schon vorhandenen
  2253.    ;Blaettern korrigieren:
  2254.     (if (= AIT-dialogwertblatt 0)
  2255.      (progn
  2256.  
  2257.            ;schon ein Blatt in der Groesse eingefuegt:
  2258.            (if (or (/= (member AIT_rahmen AIT-noblattlist) nil)(/= (member AIT_rahmen AIT-blattlist) nil))
  2259.             (progn
  2260.               (setq blatthoehe (+ (cadr (nth AIT_rahmennr AIT-masslist)) 100))
  2261.               ;Checken des EP:
  2262.               (while (or (/= (member plu AIT-plulist) nil)(/= (member plu AIT-noplulist) nil))
  2263.                 (setq
  2264.                     plu (polar plu (/ pi 2) blatthoehe)
  2265.                     pro (polar plu 0.0 rxro)
  2266.                     pro (polar pro (/ pi 2) ryro)
  2267.                  )
  2268.              ) ;while    
  2269.             ) ;progn
  2270.            ) ;if
  2271.  
  2272.          ) ;progn
  2273.         ) ;if
  2274.  
  2275.    ;bei Gehezu Blatt Mansfenpunkte bei schon vorhandenen
  2276.    ;Blaettern korrigieren:
  2277.     (if (= AIT-dialogwertblatt 2)
  2278.      (progn
  2279.        (setq plu (nth AIT-blattwahl AIT-plulist)
  2280.              pro (nth AIT-blattwahl AIT-prolist)
  2281.        )
  2282.      )
  2283.     )
  2284.  
  2285.       ;Mansfeneckpunkte:
  2286.  (setq rmxlu (car (polar plu 0 5))
  2287.       rmylu (cadr (polar plu (/ pi 2) 60))
  2288.       rmxro (car (polar pro pi 5))
  2289.       rmyro (cadr (polar pro (* pi 1.5) 5))
  2290.       rmxm (/ (+ rmxlu rmxro) 2)
  2291.       rmym (/ (+ rmylu rmyro) 2)
  2292.       pmlu (list rmxlu rmylu)
  2293.       pmlo (list rmxlu rmyro)
  2294.       pmru (list rmxro rmylu)
  2295.       pmro (list rmxro rmyro)
  2296.       pmm (list rmxm rmym)
  2297.  )
  2298.        ;Korrektur bei A4-Rahmen:
  2299.       (if (= AIT_rahmennr 0)
  2300.        (setq pmlu (polar pmlu 0 18)
  2301.              pmlo (polar pmlo 0 18)
  2302.              pmm (polar pmm 0 9)
  2303.        )
  2304.       )
  2305.  
  2306.  (if (not (tblsearch "LAYER" "EAIT3D_VDAT"))
  2307.   (progn
  2308.   (command EAITlay EAITlma "EAIT3D_VDAT" EAITlty "CONTINUOUS" "EAIT3D_VDAT" EAITlfa "5" "EAIT3D_VDAT" "")
  2309.   (setvar "CLAYER" "EAIT3D_VDAT")
  2310.   )
  2311.   (progn
  2312.     (command EAITlay EAITlta "EAIT3D_VDAT" "")
  2313.     (setvar "CLAYER" "EAIT3D_VDAT")
  2314.    )
  2315.   )
  2316.  
  2317.  ;Datenpunkt einfuegen:
  2318.  (command EAITpkt plu)
  2319.  
  2320.  (setq AITblattpunkt (entlast))
  2321.  (setvar "CLAYER" "0")
  2322.  (command EAITlay EAITlfr "EAIT3D_VDAT" "")
  2323.  
  2324.  (if (not (tblsearch "LAYER" "EAIT3D_VIEW"))
  2325.   (progn
  2326.   (command EAITlay EAITlma "EAIT3D_VIEW" EAITlty "CONTINUOUS" "EAIT3D_VIEW" EAITlfa "5" "EAIT3D_VIEW" "")
  2327.   (setvar "CLAYER" "EAIT3D_VIEW"))
  2328.   (progn
  2329.     (command EAITlay EAITlta "EAIT3D_VIEW" "")
  2330.     (setvar "CLAYER" "EAIT3D_VIEW")
  2331.    )
  2332.   )
  2333.  ;Limiten setzen:
  2334.  (command EAITlim plu pro)
  2335.  
  2336. );defun EAITPberechnung
  2337.  
  2338.  
  2339. ;--------------------------------------------------------------------------
  2340. ;Definieren der Funktion zur Erzeugung des Masstabstrings 
  2341.  
  2342. (defun EAITmstring (AIT_zm / AIT_zm1 AIT_zm2 scr1 scr2 mstr1 mstr2 mstr3)
  2343.  
  2344.   ;Masstab fuer Bildschirmausgabe aufbereiten:
  2345.   ;AIT_zm = Masstab
  2346.   ;AIT_zm1 = Masstab ohne xp
  2347.   ;AIT_zm2 = Masstab als Zahl
  2348.   ;AIT_screenmasstab = Bildschirmmasstab
  2349.   (setq AIT_zm1 (substr AIT_zm 1 (- (strlen AIT_zm) 2))
  2350.         AIT_zm2 (atof AIT_zm1)
  2351.         scr1 (strlen AIT_zm1)
  2352.         scr2 1
  2353.         mstr1 ""
  2354.         mstr2 ""
  2355.   )
  2356.   (if (>= AIT_zm2 1)
  2357.    (progn
  2358.     (repeat scr1
  2359.       (setq mstr1 (substr AIT_zm1 scr2 1)
  2360.             scr2 (+ scr2 1)
  2361.             mstr2 (strcat mstr2 mstr1)
  2362.       )
  2363.       (if (= mstr1 ".")
  2364.        (setq mstr3 mstr2
  2365.              mstr3 (substr mstr3 1 (- (strlen mstr3) 1))
  2366.              mstr3 (strcat mstr3 ":1")
  2367.        )
  2368.       )
  2369.     ) ;repeat
  2370.    ) ;progn
  2371.   ) ;if
  2372.  
  2373.   (if (< AIT_zm2 1)
  2374.    (progn
  2375.     (setq AIT_zm2 (/ 1 AIT_zm2)
  2376.           AIT_zm1 (rtos AIT_zm2 2 0)
  2377.           scr1 (strlen AIT_zm1)
  2378.     )
  2379.     (repeat scr1
  2380.       (setq mstr1 (substr AIT_zm1 scr2 1)
  2381.             scr2 (+ scr2 1)
  2382.             mstr2 (strcat mstr2 mstr1)
  2383.       )
  2384.       (if (> scr2 scr1)
  2385.        (setq mstr3 mstr2
  2386.              mstr3 (strcat "1:" mstr3)
  2387.        )
  2388.       )
  2389.     ) ;repeat
  2390.    ) ;progn
  2391.   ) ;if
  2392.   (setq AIT_screenmasstab mstr3)
  2393. );defun EAITmstring
  2394.  
  2395.  
  2396. ;--------------------------------------------------------------------------
  2397. ;Definieren der Funktion zur Mansfengenerierung
  2398.  
  2399. ;(defun EAITmansfen ( mp1 mp2 zoomfaktor bksp1 bksp2 bksp3 / bemlayerlist viewele expold)
  2400. (defun EAITmansfen ( mp1 mp2 zoomfaktor bksart / bemlayerlist viewele expold)
  2401.  
  2402.   (setq bemlayerlist (list "EAITDIM_TOP" "EAITDIM_FRONT" "EAITDIM_SIDE" "EAITDIM_VAR"))
  2403.   (command EAITman mp1 mp2)
  2404.   (setq viewele (entlast))
  2405.   (command EAITman EAITmplot EAITmon viewele "")
  2406.   (command EAITmod)
  2407.   ;alle Layer frieren:
  2408.   (if (= EAITmansfenlayer "EAITDIM_NO")
  2409.    (progn
  2410.     (foreach n bemlayerlist
  2411.     (command EAITvplay EAITlfr n "ak" "")
  2412.     )
  2413.    )
  2414.   )
  2415.   ;alle Layer ausser fuer Fenster definierten und var frieren
  2416.   (if (/= EAITmansfenlayer "EAITDIM_NO")
  2417.    (progn
  2418.     (foreach n bemlayerlist
  2419.      (if (and (/= n EAITmansfenlayer)(/= n "EAITDIM_VAR"))
  2420.       (command EAITvplay EAITlfr n "ak" "")
  2421.      )
  2422.     )
  2423.    )
  2424.   )
  2425. ;  (command EAITbks EAITb3p bksp1 bksp2 bksp3)
  2426.   (if (= bksart "world")
  2427.      (command EAITbks EAITbwe) 
  2428.       (command EAITbks EAITbho bksart)
  2429.   )
  2430.   (command EAITplan EAITpla)
  2431.   (setq expold (getvar "EXPERT"))
  2432.   (setvar "EXPERT" 1)
  2433.   (command EAITzom zoomfaktor)
  2434.   (setvar "EXPERT" expold)
  2435.   (command EAITbks EAITbwe)
  2436.   (command EAITverd)
  2437.   (command EAITpap)
  2438.  
  2439. )
  2440.  
  2441. ;--------------------------------------------------------------------------
  2442. ;Definieren der Funktion Masstabsberechnung im aktuellen View
  2443.  
  2444. (defun EAITmberechnung ( viewdata / massstablist ele2 ele2a ele3 ele4 ele5
  2445.                                     l1 l2 phoehe mass1 mass2
  2446.                        )
  2447.  
  2448.   (setq  massstablist (list 500.0 200.0 100.0
  2449.                                    50.0 20.0 10.0
  2450.                                     5.0 2.0 1.0
  2451.                                    0.5 0.2 0.1
  2452.                                    0.05 0.02 0.01
  2453.                                    0.005 0.002 0.001
  2454.                                    0.0005 0.0002 0.0001
  2455.                                    0.00005
  2456.                         )
  2457.  
  2458.          l1 (length massstablist)
  2459.          l2 0
  2460.    )
  2461.  
  2462.  
  2463.   (setq   ele2 (entget viewdata (list "ACAD"))
  2464.           phoehe (cdr (assoc 41 ele2))
  2465.           ele2a (assoc -3 ele2)
  2466.           ele3 (cdr (assoc -3 ele2))
  2467.           ele4 (cdar ele3)
  2468.           ele5 (cdr (nth 6 ele4))
  2469.           skalier (/ phoehe ele5) ;aktueller Skalierfaktor im View
  2470.    )
  2471.    
  2472.  
  2473.   ;naechstkleinerer genormter Masstab wird ermittelt:
  2474.           (repeat (- l1 1)
  2475.              (setq mass1 (nth l2 massstablist)
  2476.                    mass2 (nth (+ l2 1) massstablist)  
  2477.                )
  2478.               (if (and (<= skalier mass1) (>= skalier mass2))
  2479.                   (setq skalier1 mass2)
  2480.               )
  2481.               (setq l2 (+ l2 1))
  2482.             )
  2483.    ;skalier : ermittelter Massstabswert im View ungenormt
  2484.    ;skalier1 : ermittelter Massstabswert im View genormt
  2485.    ;m: Massstabswert
  2486.    (setq AIT_masstab skalier1)
  2487.    (if (/= skalier nil)
  2488.      (progn
  2489.        ;Bemstil einrichten:
  2490.       (setvar "DIMSCALE" (/ 1 skalier1))
  2491.  
  2492.      )
  2493.    )
  2494.    ;genormter Masstab kann nicht ermittelt werden
  2495.    (if (= skalier1 nil) (setq AIT_masstab skalier))
  2496. );defun EAITmberechnung
  2497.  
  2498. ;--------------------------------------------------------------------------
  2499. ;Definieren der Funktion zur Masstabsumwandlung aus Dialogbox
  2500.  
  2501. (defun EAITmasstabneu (m_neu / z1 z2 strl original ansicht dp mx dp1)
  2502.   (setq strl (strlen m_neu)
  2503.         z1 1
  2504.         z2 1
  2505.         original ""
  2506.         ansicht ""
  2507.         dp "no"
  2508.         dp1 "ok"
  2509.         mx ""
  2510.   )
  2511.  
  2512.   (repeat strl
  2513.       (setq str (substr m_neu z1 z2)
  2514.                   z1 (+ z1 1)
  2515.       )
  2516.  
  2517.      (if (and  (> (ascii str ) 47) (< (ascii str ) 59))  
  2518.      (progn
  2519.      (setq
  2520.             mx (strcat mx str)
  2521.       )
  2522.       (if (= str ":")
  2523.          (setq dp "ok"
  2524.                ansicht mx
  2525.                ansicht (substr ansicht 1 (- (strlen ansicht) 1))
  2526.                mx ""
  2527.          )
  2528.       )
  2529.      ) ;progn
  2530.     (setq dp1 "no")
  2531.    ) ;if 
  2532.   ) ;repeat
  2533.  
  2534.   (if (and (= dp "ok")(= dp1 "ok"))
  2535.    (progn
  2536.     (setq original mx
  2537.           ansicht (atof ansicht)
  2538.           original (atof original)
  2539.           AIT_zm (/ ansicht original)
  2540.           AIT_zm (strcat (rtos AIT_zm 2 6) "xp")
  2541.      )
  2542.     ;Bemstil einrichten:
  2543.       (setvar "DIMSCALE" (/ original ansicht))
  2544.  
  2545.    )
  2546.   )
  2547.  
  2548. );defun EAITmasstabneu
  2549.  
  2550. (princ)
  2551.  
  2552.  
  2553. ;************************************************************************
  2554. ;Item - Projektarbeiten Hauer Ende
  2555. ;************************************************************************
  2556.